浅谈CSS3中display属性的Flex布局的⽅法
最近在学习⼩程序,在设计⾸页布局的时候,新认识了⼀种布局⽅式display:flex
.container {
display: flex;
flex-direction: column;
align-items: center;
background-color: #b3d4db;
}
编译之后的效果很明显,界⾯的布局也很合理,看起来很清晰。那么究竟这个属性是⼲嘛⽤的呢?
Flex是Flexible Box的缩写,意为"弹性布局",⽤来为盒状模型提供最⼤的灵活性。设为Flex布局以后,⼦元素的float、clear 和vertical-align属性将失效。
它即可以应⽤于容器中,也可以应⽤于⾏内元素。(以上说明结合开发者⼯具说明)2009年,W3C提出了⼀种新的⽅案----Flex布局,可以简便、完整、响应式地实现各种页⾯布局。⽬前,它已经得到了所有浏览器的⽀持,这意味着,现在就能很安全地使⽤这项功能。
基本概念
采⽤Flex布局的元素,称为Flex容器(flex container),简称"容器"。它的所有⼦元素⾃动成为容器成员,称为Flex项⽬(flex item),简称"项⽬"。容器默认存在两根轴:⽔平的主轴(main axis)和垂直的交叉轴(cross axis)。主轴的开始位置(与边框的交叉点)叫做main start,结束位置叫做main end;交叉轴的开始位置叫做cross start,结束位置叫做cross end。项⽬默认沿主轴排列。单个项⽬占据的主轴空间叫做main size,占据的交叉轴空间叫做cross size。
以下6个属性设置在容器上:
flex-direction  容器内项⽬的排列⽅向(默认横向排列) 
flex-wrap  容器内项⽬换⾏⽅式
flex-flow  以上两个属性的简写⽅式
justify-content  项⽬在主轴上的对齐⽅式
align-items  项⽬在交叉轴上如何对齐
align-content  定义了多根轴线的对齐⽅式。如果项⽬只有⼀根轴线,该属性不起作⽤。
flex-direction
.box { 2  flex-direction: row | row-reverse | column | column-reverse; 3 }
属性可选值的范围为row(默认)沿⽔平主轴由左向右排列、row-reverse沿⽔平主轴由右向左排列、column沿垂直主轴右上到下和column-reverse。
flex-wrap
.box{ 2  flex-wrap: nowrap | wrap | wrap-reverse; 3 }
属性可选值的范围为nowrap(默认)不换⾏、wrap换⾏(第⼀⾏在上⽅)和wrap-reverse(你懂的~)
flex-flow
.box { 2  flex-flow: <flex-direction> || <flex-wrap>; 3 }
写法属性中,将上述两种⽅法的值⽤||连接即可
justify-content
.box { 2  justify-content: flex-start | flex-end | center | space-between | space-around; 3 }
项⽬在主轴上的对齐⽅式(主轴究竟是哪个轴要看属性flex-direction的设置了)
flex-start:在主轴上由左或者上开始排列
flex-end:在主轴上由右或者下开始排列
center:在主轴上居中排列
space-between:在主轴上左右两端或者上下两端开始排列
space-around:每个项⽬两侧的间隔相等。所以,项⽬之间的间隔⽐项⽬与边框的间隔⼤⼀倍。align-items
.box { 2  align-items: flex-start | flex-end | center | baseline | stretch; 3 }
这⾥⾯直接上图⽚说明的更清楚⼀些
.box { 2  align-content: flex-start | flex-end | center | space-between | space-around | stretch; 3 }
以上介绍完了容器中的属性,下⾯说⼀下容器中项⽬的属性:
order  项⽬的排列顺序。数值越⼩,排列越靠前,默认为0。
flex-grow  项⽬的放⼤⽐例,默认为0,即如果存在剩余空间,也不放⼤。
flex-shrink  项⽬的缩⼩⽐例,默认为1,即如果空间不⾜,该项⽬将缩⼩。
flex-basis  在分配多余空间之前,项⽬占据的主轴空间(main size)。浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为auto,即项⽬的本来⼤⼩。
flex  是flex-grow, flex-shrink 和 flex-basis的简写,默认值为0 1 auto。后两个属性可选。
align-self  允许单个项⽬有与其他项⽬不⼀样的对齐⽅式,可覆盖align-items属性。默认值为auto,表⽰继承⽗元素的align-items属性,如果没有⽗元素,则等同于stretch。
order
.item {
order: <integer>;
}
flex-grow
.item {
flex-grow: <number>; /* default 0 */
}
.item {
flex-shrink: <number>; /* default 1 */
flex布局详细讲解
}
flex-basis
.item {
flex-basis: <length> | auto; /* default auto */
}
flex
.item {
flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]
}
align-self
.item {
align-self: auto | flex-start | flex-end | center | baseline | stretch;
}
容器属性和项⽬属性是可以配合使⽤的,⽤法类似于CSS的⾏内式和嵌⼊式的道理⼀样。希望你可以在实际应⽤中熟练使⽤。
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。