Flex 布局语法教程
一、Flex布局是什么?Flex是Flexible Box的缩写,翻译成中文就是“弹性盒子”,用来为盒装模型提供最大的灵活性。任何一个容器都可以指定为Flex布局。 .box{ display: -webkit-flex; /*在webkit内核的浏览器上使用要加前缀*/ display: flex; //将对象作为弹性伸缩盒显示 } 当然,行内元素也可以使用Flex布局。 .box { display: inline-flex; //将对象作为内联块级弹性伸缩盒显示 } 兼容性写法 .box { display: flex || inline-flex; } 注意,设为Flex布局以后,子元素的float、clear和vertical-align属性将失效。
二、基本概念采用 Flex 布局的元素,称为 Flex 容器(flex container),简称"容器"。它的所有子元素自动成为容器成员,称为 Flex 项目(flex item),简称"项目"。
结构示意图
三、容器属性
flex-direction属性:决定主轴的方向(即项目的排列方向).box { flex-direction: row | row-reverse | column | column-reverse; }
? flex-wrap属性:定义换行情况
?
? .box{ flex-wrap: nowrap | wrap | wrap-reverse; }
flex-flow属性:flex-direction和flex-wrap的简写,默认row nowrap.box{ flex-flow: <flex-direction> || <flex-wrap>; } justify-content属性:定义项目在主轴上的对齐方式。
.box { justify-content: start | end | flex-start | flex-end | center | left | right | space-between | space-around | space-evenly | stretch | safe | unsafe | baseline | first baseline | last baseline; }
?
?
align-items属性:定义在交叉轴上的对齐方式
.box{ align-items: flex-start | flex-end | center | baseline | stretch; }
?
?
?
?
? align-content属性:定义多根轴线的对齐方式
.box{ align-content: flex-start | flex-end | center | space-between | space-around | stretch; }
?
?
?
?
?
?
?
?
四、项目的属性
order属性:定义项目的排列顺序。
.item { order: <integer>; }
? ? flex-grow属性:定义项目的放大比例
.item { flex-grow: <number>; }
? flex-shrink属性:定义项目的缩小比例
.item{ flex-shrink: <number>; }
如果一个项目设置flex-shrink为0;而其他项目都为1,则空间不足时,该项目不缩小。
?
?
设置flex-shrink为0的项目不缩小
如果所有项目都为0,则当空间不足时,项目撑破容器而溢出。
?
? ? flex-basis属性:定义在分配多余空间之前,项目占据的主轴空间。
.item{ flex-basis: <auto或者px>; }
注意设置的flex-basis是分配多余空间之前项目占据的主轴空间,如果空间不足则默认情况下该项目也会缩小。
?
?
设置flex-basis为350px,但空间充足
? ?
空间不足,项目缩小,小于设定值
flex属性是flex-grow,flex-shrink和flex-basis的简写
.item{ flex: none | [<flex-grow><flex-shrink><flex-basis>]; }
.item{ align-self: auto | flex-start | flex-end | center | baseline | stretch; } 该属性可能取6个值,除了auto,其他都与align-items属性完全一致。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |