探秘Flex布局下子元素宽度超出的那些烦心事

news2024/11/22 16:48:22

嘿,小伙伴们!你们有没有遇到过用Flex布局的时候,子元素的宽度莫名其妙地超出了父元素的情况?别着急,今天我就来给大家揭秘这个问题的来龙去脉,以及一些解决方案。让我们一起来深入探讨!

发现问题

首先,让我们先了解一下为什么会出现这个问题。想象一下,你在布局中使用了Flex,左边是一个小盒子,右边是一个大盒子,但右边的内容一多,就开始溢出了。这不是我们预期的Flex自动调整吗?为什么会出现这种情况呢?

实际上,问题出在我们对Flex布局的一些误解上。并不是所有的属性都能完美解决问题,这就需要我们深入了解Flex布局的原理。

Flex布局的误解

问题的根源在于我们对于flex: 1 这段语法的误解,flex: 1 经常出现在Flex布局中,它实际上是 flex-grow, flex-shrink, 和 flex-basis 这三个属性的缩写。要完全理解 flex: 1 的含义,让我们逐个解释这三个属性。

1. flex-grow

flex-grow 属性定义了项目的放大比例,默认为0,即如果存在剩余空间,也不放大。如果所有项目的 flex-grow 属性都为1,则它们将等分剩余空间。如果一个项目的 flex-grow 属性为2,而另一个项目的 flex-grow 属性为1,则前者占据的剩余空间将是后者的两倍。简而言之,flex-grow 控制了弹性盒子中各个项目在剩余空间分配上的比例。

2. flex-shrink

flex-grow 相对应的是 flex-shrink 属性。它定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小。如果所有项目的 flex-shrink 属性都为1,则它们将等比例缩小,以便适应空间。如果一个项目的 flex-shrink 属性为0,其他项目为1,则空间不足时,前者不缩小。

3. flex-basis

flex-basis 属性定义了在分配多余空间之前,项目占据的主轴空间(main size)。它可以是一个长度(如 20%100px),也可以是 auto(项目的本来大小)。默认值为 auto。在 flex-growflex-shrink 生效之前,项目所占据的空间大小由 flex-basis 决定。

解决方案

方案1:限制子元素的内容

我们可以尝试给超出的子元素来一波限制。通过设置 overflow: hidden;,我们可以让多余的内容隐藏起来,而且可以通过 white-space: nowrap;text-overflow: ellipsis; 让溢出的文本显示为省略号,这样既解决了问题,又让界面更加美观。

但需要注意的是,有些时候,即使我们设置了 overflow: hidden;,子元素的宽度还是会超出父元素,这时候就需要换个方法了。

方案2:设置子元素的最小宽度

通常情况下,当子元素的内容是自动宽度时,flex-basis 会默认为 auto,这意味着子元素会尽可能地撑开以容纳其内容。而这就导致了即使我们设置了 overflow: hidden;,子元素的宽度仍然会超出父元素的情况。这里,我们可以使用 min-width: 0; 来解决。

这个小技巧的原理是,通过将 flex-basis 设置为0,我们强制子元素在分配剩余空间之前不占据任何空间。这样一来,即使子元素的内容很多,也会被限制在父元素的范围内,而不会再溢出。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1648173.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

73. 矩阵置零/54. 螺旋矩阵

73. 矩阵置零 给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例 1: 输入:matrix [[1,1,1],[1,0,1],[1,1,1]] 输出:[[1,0,1],[0,0,0],[1,0,1]] 思路&#x…

OurBMC开源大赛企业获奖队伍专访来啦!

精彩纷呈的 OurBMC 开源大赛已告一段落,经历为期四个月的实战,各个参赛队伍也积淀了丰富的实践经验与参赛心得。本期,社区特别邀请 OurBMC 开源大赛获奖企业团队分享「走进OurBMC开源大赛,共同践行开放包容、共创共赢的开源精神」…

WordPress建站从入门到精通,跨境电商建站教程

详情介绍 课程内容:WordPress建站从入门到精通,跨境电商建站教程 - 百创网-源码交易平台_网站源码_商城源码_小程序源码 1-WordPress网站的优势 2-如何用Builtwith识别网站的搭建技术? 3-如何配置站长信息? 4-如何使用WordPress虚拟后台 5-如何选择一个好的网站域名?…

【Osek网络管理测试】[TG4_TC5]唤醒条件

🙋‍♂️ 【Osek网络管理测试】系列💁‍♂️点击跳转 文章目录 1.环境搭建2.测试目的3.测试步骤4.预期结果5.测试结果 1.环境搭建 硬件:VN1630 软件:CANoe 2.测试目的 验证DUT验证DUT睡眠后被唤醒,并再次睡眠能否…

流畅的python-学习笔记_一等函数

函数对象 函数也是对象,操作可像对象一般操作 高阶函数 高阶函数指接受参数为函数,或返回函数的函数 不少高阶函数在py3已经有了替代品。map, filter可通过生成式实现,reduce(在functools里)可通过sum实…

Web3智能物联网:科技连接的未来世界

在当今科技飞速发展的时代,Web3智能物联网正逐渐成为人们关注的焦点。随着区块链技术的不断成熟和普及,以及物联网的普及和应用,Web3智能物联网作为二者的结合,将为未来的数字世界带来革命性的变化。本文将深入探讨Web3智能物联网…

一文快速掌握高性能内存队列Disruptor

写在文章开头 Disruptor是英国外汇公司LMAX开源的一款高性能内存消息队列,理想情况下单线程可支撑600w的订单。所以本文会从使用以及设计的角度来探讨一下这款神级java消息队列。 Hi,我是 sharkChili ,是个不断在硬核技术上作死的 java code…

上市企业扣非净利润是什么意思,可以反映什么问题?

扣非净利润,全称“扣除非经常性损益后的净利润”,是指企业在剔除与正常经营无关的、偶然发生的损益后所得到的利润。这些非经常性损益包括但不限于政府补贴、处置长期资产、税收返还等。 扣非净利润的计算公式为:扣非净利润 净利润 - 非经常…

2-手工sql注入(进阶篇) sqlilabs靶场5-10题

1. 阅读,学习本章前,可以先去看看基础篇:1-手工sql注入(基础篇)-CSDN博客 2. 本章通过对sqlilabs靶场的实战,关于sqlilabs靶场的搭建:Linux搭建靶场-CSDN博客 3. 本章会使用到sqlmap,关于sqlmap的命令&…

TC3xx MTU概述(1)

目录 1.MTU基本功能 2.MBIST 3.小结 1.MTU基本功能 在TC3xx中,MTU(Memory Unit Test)被用来管理控制芯片内部各种RAM的测试、初始化和数据完整性检查。 既然MTU主要是管理和控制,那干活的想必另有他人。所以在该平台中,我们可以看到SRAM…

公众号营业执照已注销,被冻结怎么换成新主体?

公众号迁移有什么作用?只能变更主体吗?长期以来,由于部分公众号在注册时,主体不准确的历史原因,或者公众号主体发生合并、分立或业务调整等现实状况,在公众号登记主体不能对应实际运营人的情况下&#xff0…

第八篇:深入探索操作系统架构:从基础到前沿

深入探索操作系统架构:从基础到前沿 1 引言 在当今这个高速发展的数字时代,操作系统无疑是计算机科学领域的基石之一。它不仅是计算机硬件与最终用户之间的桥梁,更是实现高效计算和资源管理的关键。操作系统的架构,即其内部结构和…

企业节能降耗系统,助力企业节能降耗

随着社会的发展和能源消耗的增加,节能降耗已经成为企业可持续发展的重要课题。为了更有效地监测和管理能源消耗,越来越多的企业开始使用能耗在线监测系统。作为一种节能降耗的有力手段,能耗在线监测系统在企业中得到广泛应用。 能耗在线监测…

AI智能分析视频监控行业的发展趋势和市场发展浅析

监控视频AI智能分析技术的现状呈现出蓬勃发展的态势,这一技术源于计算机视觉和人工智能的研究,旨在将图像与事件描述之间建立映射关系,使计算机能够从视频图像中分辨出目标信息。 在技术上,监控视频AI智能分析技术已经实现了对视…

XAMPP是什么?XAMPP好不好用?

XAMPP是一个免费且开源的软件套件,用于在个人计算机上轻松搭建和运行 Apache 服务器、MySQL 数据库、PHP 和 Perl,让用户可以在个人电脑上搭建服务器环境的平台。 XAMPP的由来是 X(表示跨平台)、Apache、MySQL、PHP 和 Perl 的首字母缩写。 它集成了这…

【隧道篇 / WAN优化】(7.4) ❀ 02. WAN优化的作用 ❀ FortiGate 防火墙

【简介】看了上一篇文章,相信大家都知道了在防火墙上启动WAN优化的方法,但是WAN优化到底能做什么?相信有很多人想了解。 什么是WAN优化 现在有许多企业通过集中应用程序或在云中提供应用程序来降低成本并整合资源。应用程序在本地局域网内都能…

汇凯金业:通货膨胀对能源行业有何影响

通货膨胀对能源行业有几方面的影响,具体取决于通货膨胀的原因、规模以及持续时间。以下是一些可能的效应: 成本增加:通货膨胀导致能源行业的运营成本上升。这包括原材料、设备、维护和人力成本。如果企业不能完全将成本转嫁给消费者&#xf…

初学python记录:力扣1329. 将矩阵按对角线排序

题目: 矩阵对角线 是一条从矩阵最上面行或者最左侧列中的某个元素开始的对角线,沿右下方向一直到矩阵末尾的元素。例如,矩阵 mat 有 6 行 3 列,从 mat[2][0] 开始的 矩阵对角线 将会经过 mat[2][0]、mat[3][1] 和 mat[4][2] 。 …

不必追求深度,浅尝辄止为宜

近日笔者撰文称,有幸应《百度-百家号》相邀,在其发起的《征文任务》栏目中写作深度文章,便试着开头写了一篇《万科有“活下去”的可能性吗?》的时评文章,于5月3日发表,舆情反映不错,不到三天时间…

万里牛ERP集成金蝶K3(万里牛主管供应链)

源系统成集云目标系统 金蝶K3介绍 金蝶K3是一款ERP软件,它集成了供应链管理、财务管理、人力资源管理、客户关系管理、办公自动化、商业分析、移动商务、集成接口及行业插件等业务管理组件。以成本管理为目标,计划与流程控制为主线&#xff0…