Css Flex布局

2015-12-21  本文已影响1350人  饥人谷_Pizza

Flex布局是Css3中新加入的额外布局系统。
传统布局基于盒模型,依赖“display”、“position”、“float”属性,对于特殊布局非常不便。
因此2009年,W3C提出新的布局方案-Flex布局,但由于浏览器兼容问题,Flex布局并没有大范围铺开。

实现Flex布局的条件

1.必须有一个父级容器作为Flex容器(作为容器)
·定义一个Flex容器
.box{ display: flex; }
2.Flex容器内必须有子元素进行配合(作为项目)
项目内也可设置属性进行布局。
补充:
行内元素也可以使用Flex布局
.box{ display: inline-flex; }

webkit内核的浏览器,必须加上weibkit前缀
.box{ display: -webkit-flex; /* Safari */ display: flex; }
设成Flex后,子元素的float、clear和vertical-align属性将失效。

作用于容器的属性

flex-direction flex-wrap justify-content align-items align-content

作用于项目的属性

order flex-grow

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

*flex
flex-grow, flex-shrink,flex-basis 的缩写
.item { flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ] }

*align-self属性
align-self属性允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch。
.item { align-self: auto | flex-start | flex-end | center | baseline | stretch; }

Paste_Image.png

该属性可能取6个值,除了auto,其他都与align-items属性完全一致。

上一篇下一篇

猜你喜欢

热点阅读