logo

CSS/弹性布局


张传聪
久笙 2024-01-18 11:50:34 21821
分类专栏: 畅所欲言 话题: 开发运维

弹性布局

 

你有没有想过什么是弹性布局,CSS中的flex是如何工作的?它是flex-grow,flex-shrink和flex-basis的简写。开发中最常用的写法是flex:1,它表示flex项目扩展并填充可用空间。

 

什么是弹性布局?

弹性布局(flex container),页面中任何一个元素只要设置了display:flex属性,那么当前盒子都称为弹性盒子。弹性盒子默认有两条轴: 默认水平显示的主轴 和 始终要垂直于主轴的侧轴(也叫交叉轴),在弹性盒子中所有的子元素都是沿着主轴方向显示

 

 

 

 

Flex-grow属性

Flex-grow属性指定了flex容器中剩余空间的多少应该被分配给项目。Flex-grow属性定义项目的放大比例,默认为0,即如果存在剩余空间,也不放大。Flex-grow的值只接受一个整数。

 

 

注:flex-grow会影响宽度或高度,具体取决于flex-direction属性。

 

例如:父元素的宽度为500px,其中有两个元素A和B,A的宽度为100px,B的宽度为150px。假如不设置flex-grow属性,那么父元素的剩余宽度为500-(100+150)=250px。

 

 

 

假如A、B元素分别设置flex-grow的权重为a、b,那么A、B元素分别得到的剩余空间为250 * a/(a+b)、250 * b/(a+b)。

例:设置A的flex-grow为2,B的flex-grow为3,那么A元素的总宽度为100+250 * 2/(2+3)=200px,B元素的总宽度为150+250 * 3/(2+3)=300px。

 

 

 

 

Flex-shrink属性

Flex-shrink属性定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小。取值为0时,表示子元素不缩小。当取值大于1时,表示子元素按一定的比例缩小。取值越大,缩小得越厉害。

 

 

 

 

Flex-basis属性

Flex-basis属性定义了在分配多余空间之前,项目占据的主轴空间(main size)。浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为auto,即项目的本来大小。

Flex-basis可以设为跟width或height属性一样的值(比如350px,默认值auto),则项目将占据固定空间。

 

 

 

网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。

本文链接:http://www.xckfsq.com/news/show.html?id=35474
赞同 0
评论 0 条
久笙
粉丝 0 发表 18 + 关注 私信
上周热门
统一管理、安全运维、全面审计 | 北信源安全运维审计系统“一站式服务”  3566
10核GPU竟变9核,苹果暗改新iPad Air官网M2芯片规格  3367
行业认可 | 中电安科入选嘶吼《工控安全行业应用专题报告》「荐」行者名单及全景图谱多个细分领域  3150
明天!2024 RT-Thread全球技术大会 国内场最后一天,超多惊喜放送,等你来!  3046
永中“文韵”大模型获2024数字中国创新大赛·人工智能赛道三等奖  2980
百信与山西建投集团举行工作会谈  2906
五舟网安新品NF-5220,领航数字化时代网络安全  2906
深化协同 四川移动与启明星辰携手筑牢网络安全基座  2875
威努特助力医药制造行业在合规监管下实现降本增效  2856
BCS2024倒计时3天  2813
本周热议
我的信创开放社区兼职赚钱历程 40
今天你签到了吗? 27
如何玩转信创开放社区—从小白进阶到专家 15
信创开放社区邀请他人注册的具体步骤如下 15
方德桌面操作系统 14
用抖音玩法闯信创开放社区——用平台宣传企业产品服务 13
我有15积分有什么用? 13
如何让你先人一步获得悬赏问题信息?(创作者必看) 12
2024中国信创产业发展大会暨中国信息科技创新与应用博览会 9
信创再发力!中央国家机关台式计算机、便携式计算机批量集中采购配置标准的通知 8