标签:none 垂直 位置 1.5 basis asi 模式 base 2.3
CSS3使用columns属性定义多列布局,用法如下:
columns:column-width || column-count;
CSS3使用column-width属性定义单列显示的宽度,用法如下:
column-width:length | auto;
column-width属性可以与其它多列布局属性配合使用,设计指定固定列数、列宽的布局效果,也可以单独使用,限制单列宽度,当超出宽度时,则会自动多列显示。
CSS3使用column-count属性定义列数,用法如下:
column-count:integer | auto;
CSS3使用column-gap属性定义两栏之间的间距,用法如下:
column-gap:normal | length;
CSS3使用column-rule属性定义每列之间边框的宽度、样式和颜色,用法如下:
column-rule: length || style || color || transparent;
CSS3在column-rule属性基础上派生了3个列边框属性:
CSS3使用column-span属性定义跨列显示,也可以设置单列显示,用法如下:
column-span:none | all;
CSS3使用column-fill属性定义栏目的高度是否统一,用法如下:
column-fill:auto | balance;
column-fill属性初始值为balance,适用于多列布局元素,取值说明如下:
传统的盒模型基于HTML文档流在垂直方向上排列盒子,使用弹性盒模型可以定义盒子的排列顺序,也可以反转之。
启动弹性盒模型,只需为包含有子对象的容器对象设置display属性即可,用法如下:
display:box | inline-box | flexbox | inline-flexbox | flex | inline-flex;
CSS3弹性盒布局大致经历了三个版本:
各主流设备支持情况说明如下:
主流设备 | 支持情况 |
IE10+ | 支持最新版本 |
Chrome21+ | 支持2011版 |
Chrome20- | 支持2009版 |
Safari3.1+ | 支持2009版 |
Firefox22+ | 支持最新版本 |
Firefox2-21 | 支持2009版 |
Opera12.1+ | 支持2011版 |
Android2.1+ | 支持2009版 |
iOS3.2+ | 支持2009版 |
如果把新语法、旧语法和中间过渡语法混合在一起使用,就可以让浏览器得到完美的展示。
flexbox是CSS3升级后的新布局模式,目的是允许容器有能力让其子项目能够改变其宽度、高度、顺序等,以最佳方式填充可用空间,适应所有类型的显示设备和屏幕大小。Flex容器会使子项目扩展来填满可用空间,或缩小它们以防止溢出容器。
Flexbox由伸缩容器和伸缩项目组成。
通过设置元素的display属性为flex或inline-flex可以得到一个伸缩容器。语法如下:
display:flex | inline-flex;
上面语法定义伸缩容器,属性值决定容器是行内显示还是块显示;它的所有子元素将变成flex文档流,即伸缩项目。
CSS的column属性在伸缩容器上没有效果,同时float、clear和vertical-align属性在伸缩项目上也没有效果。
常规布局是基于块和文本流方向,而Flex布局是基于flex-flow。默认情况下伸缩行和文本方向一样:从左到右,从上到下。
使用flex-direction属性可以定义伸缩方向,适用于伸缩容器。flex-direction属性主要用来创建主轴,从而定义伸缩项目在伸缩容器内的放置方向。语法如下:
flex-direction: row | row-reverse | column | column-reverse;
flex-wrap主要用来定义伸缩容器里是单行还是多行显示,侧轴的方向决定了新行牌堆放的方向。适用于伸缩容器。语法如下:
flex-wrap:nowrap | wrap | wrap-reverse;
提示:
flex-flow属性是flex-direction和flex-wrzap属性的复合属性,适用于伸缩容器,可以同时定义伸缩容器的主轴和侧轴。默认值为row nowrap。具体语法如下:
flex-flow:<‘flex-direction‘> || <‘flex-wrap‘>
justify-content用来定义伸缩项目沿着主轴线的对齐方式,适用于伸缩容器。具体语法如下:
justify-content: flex-start | flex-end | center | space-between | space-around;
align-items主要用来定义伸缩项目可以在伸缩容器的当前行的侧轴上的对齐方式,该属性适用于伸缩容器。类似侧轴的justify-content属性。语法如下:
align-items:flex-start | flex-end | center | baseline | stretch;
align-content主要用来调准伸缩行在伸缩容器里的对齐方式,该属性适用于伸缩容器。类似于伸缩项目在主轴上使用justify-content属性一样,但本属性在只有一行的伸缩容器上没有效果。具体语法如下:
align-content:flex-start | flesx-end | center | space-between | space-around | stretch;
13.2.5 定义伸缩项目
一个伸缩项目就是一个伸缩容器的子元素,伸缩容器中的文本也被视为一个伸缩项目。
伸缩项目都有一个主轴长度(main size)和一个侧轴长度(cross size)。主轴长度是伸缩项目在主轴上的尺寸,侧轴长度是伸缩项目在侧轴上的尺寸。一个伸缩项目的宽或高取决于伸缩容器的轴,可能就是它的主轴长度或侧轴长度。
下面的属性可以调整伸缩项目的行为:
默认情况下,伸缩项目是按照文档流出现的先后顺序排列。然而,order属性可以控制伸缩项目在它们的伸缩容器中出现的顺序,该属性适用于伸缩项目。语法如下:
order:<integer>;
flex-grow可以根据需要用来定义伸缩项目的扩展能力,该属性适用于伸缩项目。它接受一个不带单位的值作为一个比例,主要决定伸缩容器剩余空间按比例应该扩展多少空间,语法如下:
flex-grow:<number>
默认值为0,负值同样生效。
如果所有伸缩项目的flex-grow设置为1,那么每个伸缩项目将设置为一个大小相等的剩余空间。如果给其中一个伸缩项目设置flex-grow值为2,那么这个伸缩项目所占的剩余空间是其它伸缩项目所占空间的两倍。
flex-shrink可以根据需要用来定义伸缩项目伸缩的能力,该属性适用于伸缩项目。与flex-grow功能相反。语法如下:
flex-shrink:<number>;
默认值为1,负值同样生效。
flex-basis用来设置伸缩基准值,剩余的空间按比例进行伸缩,适用于伸缩项目。语法如下:
flex-basis:<length> | auto;
默认值为auto,负值不合法。
扩展:
flex是flex-grow、flex-shrink和flex-basis3个属性的复合属性,适用于伸缩项目。其中第二个和第三个参数是可选参数,默认值为“0 1 auto”,具体语法如下:
flex:none | [<‘flex-grow‘><‘flex-shrink‘>?||<‘flex-basis‘>];
align-self用来在单独的伸缩项目上覆写默认的对齐方式,语法如下:
align-self:auto | flex-start | flex-end | center | baseline | stretch;
标签:none 垂直 位置 1.5 basis asi 模式 base 2.3
原文地址:http://www.cnblogs.com/ailinzhijia/p/7999271.html