其他分享
首页 > 其他分享> > 3.31_弹性盒模型

3.31_弹性盒模型

作者:互联网

弹性盒模型

2009年,W3C提出了一个新的盒模型,弹性盒模型(flex),用于解决网页布局中的一些问题。

flex的优势

  1. flex布局的子元素不会脱标
  2. 属性非常丰富,可以灵活使用,更加便捷的为页面布局。
  3. IE低版本不支持,IE10-11支持度不高。标准浏览器完全支持。
  4. 移动端支持性也比较高。

弹性盒子

声明定义

使用display:flex或者inline-flex声明一个元素为弹性盒子。此时,该元素中的子元素就会遵循弹性布局。

【注意】

弹性盒子中的子级块级元素会并排显示。

flex与inline-flex的区别

flex:如果没有设置宽高,宽默认为100%,高度为内容的高。

inline-flex:如果没有设置宽高,宽高为内容的宽高。使用的比较少。

弹性盒子的属性

flex-direction

控制子元素排列的方向。

flex-wrap

规定flex容器是单行或者多行。

flex-flow

flex-directionflex-wrap的组合简写。

flex-flow:flex-direction flex-wrap

主轴与侧轴(交叉轴)

justify-content

用于控制子元素在主轴上的排列方式。

align-items

设置子元素在交叉轴上的对齐方式。

align-content

设置子元素在交叉轴上的对齐方式。只适用多行。需要配合flex-wrap。

弹性元素(项目)

align-self

用于控制单个元素在交叉轴上的排列方式。

flex-grow

用于将弹性盒子的可用空间,按照比例,分配给弹性元素。

eg:三个盒子的宽相等,总和为600px,父盒子宽为900px,剩下有300px。

设置每个盒子的flex-grow的值分别为:1:2:3, 则将300px分为6份,第一个盒子占1份,第二个盒子2份,第三个盒子占三份。

flex-shrink

弹性盒子的宽小于子元素的总宽时,按照flex-shrink设置的值进行比例收缩。

步骤

  1. 计算缺少的值。
  2. 计算每一个盒子的缩小的比例((元素的宽shrink值)/(元素1的宽shrink值)+(元素2的宽*shrink值)+…)
  3. 计算每一个盒子应该减少的值。缺少的值*缩小的比例。
  4. 实际的宽:设置的宽-应该减少的值。

flex-basis

该属性定义了在子元素分配空间之前,占据的主轴空间。

如果盒子需要进行缩放,没有设置flex-basis时,缩放的计算会按照宽高进行计算。如果设置了flex-basis,会按照flex-basis进行计算,而忽略掉设置的宽高。

flex

flex是flex-grow,flex-shrink,flex-basis的缩写。

flex:flex-grow的值 flex-shrink的值 flex-basis的值;
默认值:0  1  auto(主轴的长度)

order

用于控制弹性元素的位置。默认为0,数值越小越在前面。

【注意点】

1.行内元素也会受到弹性盒子的影响。

2.绝对定位的元素会脱离弹性盒子的控制

3.弹性元素设置浮动会无效。

标签:flex,盒子,紧靠,交叉,模型,元素,弹性,3.31
来源: https://blog.csdn.net/m0_56232007/article/details/115361337