编程

盒子模型:display:-webkit-box的使用

2746 2023-03-22 21:22:00

在移动布局中浮动已经不再重要,自适应成为主要的需求,所以display:-webkit-box;变的尤为重要.

box-flex是css3新添加的盒子模型属性,实现布局的垂直登高/水平均分/按比例划分.兼容性有待提高,没有得到完全支持,可以使用它们的私有属性定义Firefox(-moz)/opera(-o)/chrome/safari(-webkit)

一、box-flex属性

box-flex主要让子容器针对父容器的宽度按一定规则进行划分--父容器定义display:box后,子容器变为内联元素,使其居中只能通过给父容器定义text-align:center;

1、如果有一个或多个子容器设置了固定的宽度,父容器减去固定宽度,或者子容器的margin值,剩下的宽度再按照划分比例进行划分。

二、box属性

父容器里面的box属性:box-orient | box-align | box-pack | box-lines

1、box-orient

box-orient(排列)用来确定父容器里的子容器的排列方式,是水平还是垂直。可选属性如下所示:

horizontal | vertical | inline-axis | block-axis | inherit

horizontal、inline-axis说明:

给box设置horizontal或inline-axis属性其效果似乎表现一致,都可将子容器水平排列,具体两者有什么实质差别暂时还没有搞清楚。

如果父容器选择horizontal或inline-axis属性对子容器进行水平排列,其是对父容器的宽度进行分配划分。----此时如果父容器定义了高度值,其子容器的高度值设置则无效状态,所有子容器的高度等于父容器的高度值---;等高布局:如果父容器不设置高度值,其子容器的高度值才有效并且取最大高度值的子容器的高度。

vertical、block-axis说明:

给box设置vertical或block-axis属性(此属性是默认值)其效果似乎表现一致,都可将子容器垂直排列,具体两者有什么实质差别暂时还没有搞清楚。

如果父容器选择vertical或block-axis属性对子容器进行垂直排列,其是对父容器的高度进行分配划分。此时如果父容器定义了宽度值,其子容器的宽度值设置则无效状态;如果父容器不设置宽度值,其子容器的宽度值才有效并且取最大宽度值的子容器的宽度

inherit说明:

inherit属性则是让子容器继承父容器的相关属性。

2、box-direction

box-direction用来确定父容器里的子容器排列顺序,具体属性如下代码所示:

normal | reverse | inherit

normal是默认值  reverse表示反转 

3、box-align

box-align表示父容器里面子容器的垂直对齐方式,可选参数如下所示:

start | end | center | baseline | stretch

start--在box-align表示居顶对齐

end--在box-align表示居底对齐

center--在box-align表示居中对齐

stretch--在box-align表示拉伸,拉伸到与父容器等高

4、box-pack

box-pack表示父容器里面子容器的水平对齐方式,可选参数如下所示:

start | end | center | justify

start--在box-pack表示水平居左对齐

end--在box-pack表示水平居右对齐

center--在box-pack表示水平居中对齐

justify--在box-pack表示水平等分父容器宽度(唯一遗憾的是,firefox与opera暂时不支持,只有safari、chrome支持)

CSS