CSS3 box-orient box-direction box-align box-flex box-pack

何烨华
2023-12-01


实例

水平排列 div 元素的子元素:

div
{
width:350px;
height:100px;
border:1px solid black;

/* Firefox */
display:-moz-box;
-moz-box-orient:horizontal;

/* Safari、Opera 以及 Chrome */
display:-webkit-box;
-webkit-box-orient:horizontal;

/* W3C */
display:box;
box-orient:horizontal;
}

亲自试一试

浏览器支持

目前没有浏览器支持 box-orient 属性。

Firefox 支持替代的 -moz-box-orient 属性。

Safari、Opera 以及 Chrome 支持替代的 -webkit-box-orient 属性。

定义和用法

box-orient 属性规定框的子元素应该被水平或垂直排列。

提示:水平框中的子元素从左向右进行显示,而垂直框的子元素从上向下进行显示。不过,box-direction 和 box-ordinal-group 能够改变这种顺序。

默认值: inline-axis
继承性: no
版本: CSS3
JavaScript 语法: object.style.boxOrient="vertical"

语法

box-orient: horizontal|vertical|inline-axis|block-axis|inherit;
描述 测试
horizontal 在水平行中从左向右排列子元素。 测试
vertical 从上向下垂直排列子元素。 测试
inline-axis 沿着行内轴来排列子元素(映射为 horizontal)。 测试
block-axis 沿着块轴来排列子元素(映射为 vertical)。 测试
inherit 应该从父元素继承 box-orient 属性的值。  


实例

以反方向显示 div 框的子元素:

div
{
width:350px;
height:100px;
border:1px solid black;

/* Firefox */
display:-moz-box;
-moz-box-direction:reverse;

/* Safari、Opera 以及 Chrome */
display:-webkit-box;
-webkit-box-direction:reverse;

/* W3C */
display:box;
box-direction:reverse;
}

亲自试一试

浏览器支持

目前没有浏览器支持 box-direction 属性。

Firefox 支持替代的 -moz-box-direction 属性。

Safari、Opera 以及 Chrome 支持替代的 -webkit-box-direction 属性。

定义和用法

box-direction 属性规定框元素的子元素以什么方向来排列。

默认值: normal
继承性: no
版本: CSS3
JavaScript 语法: object.style.boxDirection="reverse"

语法

box-direction: normal|reverse|inherit;
描述 测试
normal 以默认方向显示子元素。 测试
reverse 以反方向显示子元素。 测试
inherit 应该从子元素继承 box-direction 属性的值  


实例

通过使用 box-align and box-pack 属性,居中 div 框的子元素:

div
{
width:350px;
height:100px;
border:1px solid black;

/* Firefox */
display:-moz-box;
-moz-box-pack:center;
-moz-box-align:center;

/* Safari、Opera 以及 Chrome */
display:-webkit-box;
-webkit-box-pack:center;
-webkit-box-align:center;

/* W3C */
display:box;
box-pack:center;
box-align:center;
}

亲自试一试

页面底部有更多实例。

浏览器支持

目前没有浏览器支持 box-align 属性。

Firefox 支持替代的 -moz-box-align 属性。

Safari、Opera 以及 Chrome 支持替代的 -webkit-box-align 属性。

定义和用法

box-align 属性规定如何对齐框的子元素。

默认值: stretch
继承性: no
版本: CSS3
JavaScript 语法: object.style.boxAlign="center"

语法

box-align: start|end|center|baseline|stretch;
描述 测试
start

对于正常方向的框,每个子元素的上边缘沿着框的顶边放置。

对于反方向的框,每个子元素的下边缘沿着框的底边放置。

测试
end

对于正常方向的框,每个子元素的下边缘沿着框的底边放置。

对于反方向的框,每个子元素的上边缘沿着框的顶边放置。

测试
center 均等地分割多余的空间,一半位于子元素之上,另一半位于子元素之下。 测试
baseline 如果 box-orient 是inline-axis或horizontal,所有子元素均与其基线对齐。 测试
stretch 拉伸子元素以填充包含块



实例

定义两个可伸缩的 p 元素。如果父元素的总宽度是 300 像素,则 #p1 的宽度是 100 像素,而 #p2 的宽度是 200 像素:

#p1
{
-moz-box-flex:1.0; /* Firefox */
-webkit-box-flex:1.0; /* Safari 和 Chrome */
box-flex:1.0;
border:1px solid red;
}

#p2
{
-moz-box-flex:2.0; /* Firefox */
-webkit-box-flex:2.0; /* Safari 和 Chrome */
box-flex:2.0;
border:1px solid blue;
}

亲自试一试

浏览器支持

目前没有浏览器支持 box-flex 属性。

Firefox 支持替代的 -moz-box-flex 属性。

Safari、Opera 以及 Chrome 支持替代的 -webkit-box-flex 属性。

定义和用法

box-flex 属性规定框的子元素是否可伸缩其尺寸。

提示:可伸缩元素能够随着框的缩小或扩大而缩写或放大。只要框中有多余的空间,可伸缩元素就会扩展来填充这些空间。

默认值: 0.0(指示该元素不可伸缩)
继承性: no
版本: CSS3
JavaScript 语法: object.style.boxFlex=2.0

语法

box-flex: value;
描述
value 元素的可伸缩行。柔性是相对的,例如 box-flex 为 2 的子元素两倍于 box-flex 为 1 的子元素。



实例

通过一起使用 box-align 和 box-pack 属性,对 div 框的子元素进行居中:

div
{
width:350px;
height:100px;
border:1px solid black;

/* Firefox */
display:-moz-box;
-moz-box-pack:center;
-moz-box-align:center;

/* Safari、Opera 以及 Chrome */
display:-webkit-box;
-webkit-box-pack:center;
-webkit-box-align:center;

/* W3C */
display:box;
box-pack:center;
box-align:center;
}

亲自试一试

浏览器支持

目前没有浏览器支持 box-pack 属性。

Firefox 支持替代的 -moz-box-pack 属性。

Safari、Opera 以及 Chrome 支持替代的 -webkit-box-pack 属性。

定义和用法

box-pack 属性规定当框大于子元素的尺寸,在何处放置子元素。

该属性规定水平框中的水平位置,以及垂直框中的垂直位置。

默认值: start
继承性: no
版本: CSS3
JavaScript 语法: object.style.boxPack="center"

语法

box-pack: start|end|center|justify;
描述 测试
start

对于正常方向的框,首个子元素的左边缘被放在左侧(最后的子元素后是所有剩余的空间)

对于相反方向的框,最后子元素的右边缘被放在右侧(首个子元素前是所有剩余的空间)

测试
end

对于正常方向的框,最后子元素的右边缘被放在右侧(首个子元素前是所有剩余的空间)。

对于相反方向的框,首个子元素的左边缘被放在左侧(最后子元素后是所有剩余的空间)。
测试
center 均等地分割多余空间,其中一半空间被置于首个子元素前,另一半被置于最后一个子元素后 测试
justify 在每个子元素之间分割多余的空间(首个子元素前和最后一个子元素后没有多余的空间)。 测试











 类似资料: