a0819245270e8cf87f67938681e28db4.gif

前言:display:flex 是一种布局方式。它即可以应用于容器中,也可以应用于行内元素。是W3C提出的一种新的方案,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持。

d457cf11d08b0af0ae39df31f079ebf1.png 

Flex是Flexible Box的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。设为Flex布局以后,子元素的float、clear和vertical-align属性将失效。 flex的六个属性flex-direction 容器内元素的排列方向(默认是横向排列)

HTML代码:

a31d90a4f2f17be2cac54f1f0b5486b8.png

css代码:

4eb748f49e3a722848d3d4b2845bff75.png

效果展示:

(1)flex-direction:row; 沿水平主轴让元素从左向右排列  

0f79af888031cd58d7df4235d64747f1.png

(2)flex-direction:column; 让元素沿垂直主轴从上到下垂直排列  

340c378955f92326bd1f9dc4669d17ad.png

(3)flex-direction:row-reverse;沿水平主轴让元素从右向左排列  

0a0c1d9623169157fce1103e5a7bfcb0.png

flex-wrap 容器内元素的换行(默认不换行) (1)flex-wrap: nowrap; (默认)元素不换行,比如:一个div宽度100%,设置此属性,2个div宽度就自动变成各50%; (2)flex-wrap: wrap; 元素换行,比如:一个div宽度100%,设置此属性,第二个div就在第二行了; ③justify-content 元素在主轴(页面)上的排列

HTML代码:

a31d90a4f2f17be2cac54f1f0b5486b8.png

css代码:

0457c0a550b8a447d8cb906f40fbbace.png

效果展示:

(1)justify-content : center;元素在主轴(页面)上居中排列

cc6f75f9ab18bdab39a4fe725abc84f9.png

(2)justify-content : flex-start;元素在主轴(页面)上由左或者上开始排列

4e9bad82560e8927d0db41b099591235.png

(3)justify-content: flex-end;元素在主轴(页面)上由右或者下开始排列

ad6ebd2df006f4d348a636c6af198723.png

(4)justify-content : space-between;元素在主轴(页面)上左右两端或者上下两端开始排列

3a4fa4d8bd03a06524d61f2fb7f85976.png

(5)justify-content : space-around;每个元素两侧的间隔相等。所以,元素之间的间隔比元素与边框的间隔大一倍。

0301b8ea34b44f92b30c863bcdf8cb61.png

align-items   元素在主轴/页面当前行的横轴/纵轴方向上的对齐方式

HTML代码:

57b7d507ecfe2da75b98382b6fd44c32.png

css代码:

1c8988475150ebd1c6dda479717304dd.png

效果展示:

(1)align-items : flex-start; 弹性盒子元素的侧轴(纵轴)起始位置的边界紧靠住该行的侧轴起始边界(靠上对齐)。

5f6b22d1d819bdf2522b25c781333d55.png

(2)align-items : flex-end; 弹性盒子元素的侧轴(纵轴)起始位置的边界紧靠住该行的侧轴结束边界。(靠下对齐)

271c3a8cce26a86907fe0831487c0f61.png

(3)align-items : center; 弹性盒子元素在该行的侧轴(纵轴)上居中放置。(居中对齐)

5c41fa5da9fb617e2c6d03aaf268739c.png

(4)align-items : baseline; 如弹性盒子元素的行内轴与侧轴为同一条,则该值与'flex-start'等效 ,如下图 。 其它情况下,该值将参与基线对齐 ,如右下图中所示, div1的行高为50px,div2的行高为60px,div3的行高为70px,三个div的文本基线是对其的 。(靠上对齐)         

5f6b22d1d819bdf2522b25c781333d55.png

f6716f4ca3e8ecfe75d741a9c5cec731.png

align-content 在弹性容器内的元素没有占用交叉轴上所有可用的空间时对齐容器内的各项(垂直)

 HTML代码:

70e858395339b31590e1711d5f1bd7b6.png

css代码

b0be42f7d3836b7446807d2c91ee30ef.png

 效果展示:

(1)align-content: flex-start; 元素位于容器的开头。各行向弹性盒容器的起始位置堆叠。

bfec13843c4d52041ffdb575e6233a33.png 

(2)align-content: flex-end; 元素位于容器的结尾。各行向弹性盒容器的结尾位置堆叠。

76b5f81e750ed8ce54c1c9320c9889ac.png 

(3)align-content: stretch; 元素位于容器的中心。各行向弹性盒容器的中间位置堆叠。

a0f823c14f7205f86ed2db5eb2a0e00e.png 

(4)align-content: center; 默认值。元素被拉伸以适应容器。各行将会伸展以占用剩余的空间。如果剩余的空间是负数,该值等效于'flex-start'。

76b5f81e750ed8ce54c1c9320c9889ac.png 

(5)align-content: space-between;元素位于各行之间留有空白的容器内。各行在弹性盒容器中平均分布。

51b3304db3180d5eb8e9a3c1aa5516cd.png 

(6)align-content: space-around;元素位于各行之前、之间、之后都留有空白的容器内。各行在弹性盒容器中平均分布,两端保留子元素与子元素之间间距大小的一半。如果剩余的空间是负数或弹性盒容器中只有一行,该值等效于"center"。

38ef11a27dcb24b01af27dfe1093e0dd.png

总结:以上就是今日的技术分享啦!喜欢的话请期待下期内容哦~ 

d457cf11d08b0af0ae39df31f079ebf1.png

2cddf098378363e5e598c09c1be4b1b5.png

传一后期精彩活动预告

ab8e6945caa8c3f16c288b226fc15627.png

8e49358bcdb33dc4c8a78d959865c7eb.png

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐