标签:des style class code http tar
http://www.w3.org/TR/2014/WD-css-flexbox-1-20140325/
CCS2.1中规定了四种布局模式:
Flexbox(伸缩布局盒) 是 CSS3 中一个新的布局模式,用于复杂的布局(designed for laying out more complex applications and webpages)
例子:
<style> #deals { display: flex; /* Flex layout so items have equal height */ flex-flow: row wrap; /* Allow items to wrap into multiple lines */ } .sale-item { display: flex; /* Lay out each item using flex layout */ flex-flow: column; /* Lay out item’s contents vertically */ } .sale-item > img { order: -1; /* Shift image before other content (in visual order) */ align-self: center; /* Center the image cross-wise (horizontally) */ } .sale-item > button { margin-top: auto; /* Auto top margin pushes button to bottom */ } </style>
Flexbox 由 伸缩容器 和 伸缩项目 组成。通过设置元素的 display 属性为 flex
或 inline-flex
可以得到一个伸缩容器。设置为 flex
的容器被渲染为一个块级元素,而设置为 inline-flex
的容器则渲染为一个行内元素。
下图是可以看出flex-flow与之前熟悉的元素的映射关系。The flex-flow value determines how these terms map to physical directions (top/right/bottom/left), axes (vertical/horizontal), and sizes (width/height).
Flexbox 定义了伸缩容器内伸缩项目该如何布局。
Flexbox 使用 主轴 和 侧轴的概念。伸缩行跟随主轴。侧轴则垂直于主轴。
display 值有两种
flex :生成一个块级伸缩容器box
inline-flex: 生成一个内联伸缩容器box
Flex 容器与之前的块级元素和内联元素不同,因此很多针对块级元素定义的属性在伸缩容器内是没效果的。(如column-*,float,clear等)
设置伸缩元素的 visibility:collapse ,
目前为止,visibility: collapse;
还没有被让任何浏览器正确的实现。
伸缩容器的内容可以从任何方向任何顺序铺展。主要通过 flex-direction,flex-wrap, and order这三个属性
nowrap | wrap | wrap-reverse
单行,多行,多行且从cross-end 往cross-start
如果 flex-wrap
设置为 wrap
,在一个伸缩行容不下所有伸缩项目时,伸缩项目会换行到一条新增的伸缩行上。新增的伸缩行根据侧轴的方向添加。若为wrap-reverse
,则从侧轴反方向添加
flex-direction 和flex-wrap 的缩写。
div1 { flex-flow: row; }
/* Initial value. Main-axis is
inline, no wrap. */
div2 { flex-flow: column wrap; }
/* Main-axis is block-direction (top to bottom)
and lines wrap in the inline direction (rightwards). */
div3 { flex-flow: row-reverse wrap-reverse; }
/* Main-axis is the opposite of inline direction
(right to left). New lines wrap upwards. */
NOTE: 以上三个属性都是相对writing-mode而言的。
如果需要文档顺序(html的顺序)和显示顺序不同时,用order,order默认值为0,设为-1将显示在最前面。
none | [ <‘flex-grow’><‘flex-shrink’>? || <‘flex-basis’> ]
flex: initial = flex: 0 1 auto.
元素在有剩余空间的情况下不会有任何变化,但是在必要的情况下会被收缩。
元素会根据主轴自动伸缩以占用所有剩余空间,可以通过使用 flex: 1;
来达到一样的效果
在任何情况都不会发生伸缩。
flex: <positive-number> : 指定一个数字,代表了这个伸缩项目该占用的剩余空间比例。剩余空间被所有指定flex的伸缩元素瓜分。
块级元素中的margin
在伸缩盒中,能做同样的事情,但是更加强大。
margin:auto垂直居中
#login {
margin-left: auto;
} 导致了所有的剩余空间被合并到login元素的左边去了
用auto margins 和alignment properties的区别:
flex-start | flex-end | center | space-between | space-around
flex-start | flex-end | center | space-between | space-around | stretch
main-axis baseline
cross-axis baseline
L6.Flexbox 伸缩盒模型,布布扣,bubuko.com
标签:des style class code http tar
原文地址:http://www.cnblogs.com/guozhiguoli/p/3791348.html