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

嘿,小伙伴们!你们有没有遇到过用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.mfbz.cn/a/598440.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Gaea+UE5】创建基本的大型世界场景

目录 效果 步骤 一、在Gaea中生成地形 二、确定导出的地形规模 三、在UE中创建地形 四、验证UE创建的地形规模是否正确 五、使用M4自动地形材质 效果 步骤 一、在Gaea中生成地形 1. 打开Gaea官网下载软件 2. 打开Gaea软件,我们可以选择一个预设的山体 创…

Git === Git概述 Git安装

第1章 Git概述 Git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目。 Git易于学习,占地面积小,性能极快。 它具有廉价的本地库,方便的暂存区域和多个工作流分支等特性。其性能优于Subversion…

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

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

Pytorch入门实战 P09-YOLOv5里面的Backbone模块搭建网络

目录 1、YOLOv5的模型图。 2、BackBone简单介绍。 3、YOLOv5的Backbone文件。 4、YOLOv5Backbone的code部分 5、完整的code部分 6、结果展示 (1)Adam优化器 (2)SGD优化器 🍨 本文为🔗365天深度学习…

linux系统下产生Segmentation fault 与 Segmentation fault (core dumped)!!!

最近在学习的过程中,遇到了Segment fault(段错误)的问题,经过一番查找资料,学到了一些相关知识,这里做一个梳理,以防以后在遇到类似的问题,并且希望能够帮助到大家一丝丝&#xff01…

华为AI全栈生态布局:中国科技巨头加速创新

华为AI芯片生态全栈深度分析 2024 一、引言 1.1 华为AI芯片发展背景: 华为,通信和消费电子巨头,以其技术创新和远见著称。2013年,华为率先布局人工智能(AI),并专注于全栈AI解决方案的开发。华…

骨传导耳机哪个品牌值得入手?精选五款高性能骨传导耳机,闭眼入都不踩雷!

随着健康生活的日益普及,运动健身逐渐成为人们生活中的重要组成部分。在这一背景下,骨传导耳机作为一种新型蓝牙耳机,凭借其不堵塞耳道、防水性能强等特性,受到了广大运动爱好者的喜爱。然而,骨传导耳机的热销也吸引了…

一次性邮箱API发送邮件的方法?如何配置?

一次性邮箱API发送邮件有哪些注意事项?怎么安全发信? 随着网络安全问题的日益凸显,如何安全、高效地发送邮件成为了一个亟待解决的问题。一次性邮箱API的出现,为我们提供了一种新的解决方案。那么,如何使用一次性邮箱…

白酒:白酒香型的国际化推广与市场接受度分析

云仓酒庄的豪迈白酒一直有在白酒香型的国际化推广。随着中国白酒市场的不断扩大和国际化的趋势,了解白酒香型的国际接受度和推广策略对于酒厂和整个行业都具有重要意义。 首先,国际化推广需要深入了解国际市场的需求和消费者偏好。不同国家和地区的消费者…

长难句打卡5.7

In December 2010 America’s Federal Trade Commission (FTC) proposed adding a “do not track” (DNT) option to Internet browsers, so that users could tell advertisers that they did not want to be followed. 2010年12月,美国美国联邦贸易委员会(FTC)提…

020、Python+fastapi,第一个Python项目走向第20步:ubuntu 24.04 docker 安装mysql8集群+redis集群(一)

系列文章 pythonvue3fastapiai 学习_浪淘沙jkp的博客-CSDN博客https://blog.csdn.net/jiangkp/category_12623996.html 前言 docker安装起来比较方便,不影响系统整体,和前面虚拟环境有异曲同工之妙,今天把老笔记本T400拿出来装了个ubuntu24…

Spring AOP(3)

目录 Spring AOP原理 代理模式 代理模式中的主要角色 静态代理 动态代理 总结:面试题 什么是AOP? Spring AOP实现的方式有哪些? Spring AOP实现原理 Spring使用的是哪种代理方式? JDK和CGLIB动态代理的区别? Spring AOP原理 代理模式 代理模式, 也叫委托模式. …

CUDA C编程:第一个程序 向量相加

我的电脑没有装CUDA,所以使用租了带GPU的云服务器,然后使用vscode SSH远程连接云服务器。云GPU使用的是智星云,0.8元/h。 智星云 可以使用nvcc --version查看系统中安装的CUDA版本。 然后写第一个CUDA程序,两个向量相加结果给到…

绝地求生:季后赛名额确定!NH战队总积分榜排名第一!

2024年5月5日,PCL春季赛常规赛第五阶段第三天比赛结束,今天打完春季赛常规赛结束,16个战队进入季后赛的名额已确定。NH战队总积分506分,总积分榜排名第一!!NH战队也是唯一一支总积分超过500分的队伍。今天最…

语音识别之其他谱图

⚠申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址。 全文共计3077字,阅读大概需要3分钟 🌈更多学习内容, 欢迎👏关注👀【文末】我的个人微信公众号&#xf…

护眼灯有没有护眼的效果?一键查看这五大护眼效果极佳的护眼台灯

在数字时代,护眼灯已成为保护视力的重要工具。但消费者常问:护眼灯有没有护眼的效果?挑选到技术过关的护眼台灯是能够很好地起到护眼效果的。本文将并重点介绍五款具有卓越护眼功能的台灯。这些精选灯具不仅在照明效果上表现出色,…

leetcode-缺失的第一个正整数-96

题目要求 思路 1.这里的题目要求刚好符合map和unordered_map 2.创建一个对应map把元素添加进去,用map.find(res)进行查找,如果存在返回指向该元素的迭代器,否则返回map::end()。 代码实现 class Solution { public:int minNumberDisappeare…

智慧公厕打造智慧城市新标杆

公共厕所作为城市基础设施的重要组成部分,直接关系到市民的生活品质和城市形象。传统的公厕管理方式存在着许多问题,如环境脏乱、清洁不及时等,给市民带来了诸多不便和不满。而智慧公厕作为一种全新的管理模式,通过物联网、大数据…

Temporary Email邮箱API发送邮件怎么配置?

Temporary Email邮箱API发送邮件的方法?如何使用? 临时邮箱因其便捷性和隐私保护的优势,越来越受到用户的青睐。而在许多场景下,我们可能需要使用临时邮箱API来发送邮件。那么,如何配置Temporary Email邮箱API发送邮件…

Docker 操作redis

命令: docker删除容器命令:docker rm 容器名称 (默认只能删除停止运行的容器) 运行redis服务端并指定窗口: docker run --name mr -p 6379:6379 -d redis redis-server --appendonly yes 运行成功之后运行docker ps 可以查看运行中的所有容器以及状态 docke rexec -it mr b…
最新文章