搜索
首页web前端css教程CSS3中的box-flex弹性盒属性布局的示例介绍

flex布局毫无疑问是当今Web页面的最强大布局方式,box-flex弹性盒模型是其中的一个代表,这里我们就来以实例讲解CSS3中的box-flex弹性盒模型布局

box-flex是css3新添加的盒子模型属性,它的出现打破了我们经常使用的浮动布局,实现垂直等高、水平均分、按比例划分。但是它有一定的局限性,在firefox、chrome这浏览器下需要使用它们的私有属性来定义:firefox(-moz)、chrome(-webkit)。

一、box-flex属性
box-flex主要让子容器针对父容器的宽度按一定规则进行划分。

<p class="box">   
 <p class="col_1">111</p>   
 <p class="col_2">222</p>   
 <p class="col_3">333</p>   
</p>   
<style type="text/css">   
.box {   
 display:box;   
 display:-webkit-box;   
 display:-moz-box;   
 background-color:#fff;   
 width:500px;   
 height:100px;   
 border:1px solid #333;   
 margin:0 auto;   
}   
.col_1 {   
 box-flex:1;   
 -moz-box-flex:1;   
 -webkit-box-flex:1;   
 background-color:#ffc;   
}   
.col_2 {   
 background-color:#ccf;   
 box-flex:2;   
 -moz-box-flex:2;   
 -webkit-box-flex:2;   
}   
.col_3 {   
 background-color:#fcf;   
 box-flex:2;   
 -moz-box-flex:2;   
 -webkit-box-flex:2;   
}   
</style>

CSS3中的box-flex弹性盒属性布局的示例介绍

注意:
父容器必须定义为display:box,其子容器才可以进行划分(如果定了display:box则该容器为内联元素,使用margin:0 auto让其居中在firefox下无效,需要通过父容器的text-align:center;来控制。但在chrome下是可以的)
上面所讲到的例子中,三个子块分别设置了1、2、2,也就是把这个父容器分成5份,分别占据了父结构宽度的1/5(100px)、2/5(200px)、2/5(200px)。
以上是按比例数来进行划分的,如果其中一个或多个子容器设置了固定宽度,其它子容器没有设置,那么设置宽度的按宽度来算,剩下的部分再按上面的方法来计算。

.col_3 {   
 background-color:#fcf;   
 width:50px;/*设置宽度为50px*/
}

CSS3中的box-flex弹性盒属性布局的示例介绍

当子容器中需要有间隔的时候,他们平分的宽度需要减去中间的margin,然后再按比例平分。

.col_2 {   
 background-color:#ccf;   
 box-flex:2;   
 -moz-box-flex:2;   
 -webkit-box-flex:2;   
 margin:0 20px;   
}

CSS3中的box-flex弹性盒属性布局的示例介绍

二、box属性
上面讲到的是如何将box-flex如何对父容器的宽度进行划分,现在来说一下父容器里面的box属性包括哪些。
box-orient, box-direction, box-align, box-pack, box-lines
1、box-orient
box-orient用来确定父容器里子容器的排列方式是水平还是垂直,可选属性如下:
horizontal | vertical | inline-axis | block-axis | inherit
horizontal和inline-axis属性其效果表现一致,都可以将容器水平排列,在默认情况下也呈现水平排列的样式。当父容器设置高度时,在firefox下面其子容器的高度无效,但chroma下面则有效。

.col_1 {   
 height:50px;   
}   
.col_2 {   
 height:80px;   
}

CSS3中的box-flex弹性盒属性布局的示例介绍

如果你容器不设置高度,子容器的高度值才生效,在firefox下面他们的高度取其中的最大值。而chrome下面设置高度的子容器为自己的高度,未设置的其高度和最大值的高度一样,其实就是和父容器的高度一致。

.box {   
 /*未设置高度*/
}   
.col_1 {   
 height:50px;   
}   
.col_2 {   
 height:80px;   
}   
.col_3 {   
 /*未设置高度*/
}

CSS3中的box-flex弹性盒属性布局的示例介绍CSS3中的box-flex弹性盒属性布局的示例介绍

vertical和block-axis属性效果表现一致,都可将子容器垂直排列。他们是对父容器的高度进行分配。如果子容器设置了宽度,也是谷歌下面有效,火狐无效,其它都与horizontal表现一致。
CSS3中的box-flex弹性盒属性布局的示例介绍CSS3中的box-flex弹性盒属性布局的示例介绍

2、box-direction
box-direction用来确定父容器里面的子容器排列顺序,具有以下属性:
normal | reverse | inherit
normal是默认值,如上面测试结果。
reverse表示反转,其表现方式跟normal相反,呈现为3、2、1
CSS3中的box-flex弹性盒属性布局的示例介绍

3、box-align
box-align表示父容器里面子容器的垂直对齐方式,属性值为:
start | end | center | baseline | stretch
start、baseline展示效果
CSS3中的box-flex弹性盒属性布局的示例介绍

end展示效果
CSS3中的box-flex弹性盒属性布局的示例介绍

center展示效果
CSS3中的box-flex弹性盒属性布局的示例介绍

stretch展示效果,(谷歌下面如start)
CSS3中的box-flex弹性盒属性布局的示例介绍

4、box-pack
box-pack表示父容器里面子容器的水平对齐方式,可选参数如下所示:
start | end | center | justify
css代码

.box {   
 display:box;   
 display:-webkit-box;   
 display:-moz-box;   
 background-color:#fff;   
 width:500px;   
 border:1px solid #333;   
 margin:0 auto;   
 height:100px;   
 -webkit-box-pack:start;   
 -moz-box-pack:start;   
 box-pack:start;   
}   
.col_1,.col_2,.col_3{   
 width:100px;   
}

start:在box-pack表示水平居左对齐,如下所示:
CSS3中的box-flex弹性盒属性布局的示例介绍

end:在box-pack表示水平居右对齐,如下图所示
CSS3中的box-flex弹性盒属性布局的示例介绍

center:在box-pack表示水平居中对齐,如下图所示
CSS3中的box-flex弹性盒属性布局的示例介绍

justify:在box-pack表示两边对齐试

以上是CSS3中的box-flex弹性盒属性布局的示例介绍的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
丢失的CSS技巧cohost.org丢失的CSS技巧cohost.orgApr 25, 2025 am 09:51 AM

在这篇文章中,布莱克·莫里(Blackle Mori)向您展示了一些骇客,同时试图推动同位HTML支持的极限。如果您敢于使用这些,以免您也被标记为CSS罪犯。

光标的下一个CSS样式光标的下一个CSS样式Apr 23, 2025 am 11:04 AM

具有CSS的自定义光标很棒,但是我们可以将JavaScript提升到一个新的水平。使用JavaScript,我们可以在光标状态之间过渡,将动态文本放置在光标中,应用复杂的动画并应用过滤器。

世界碰撞:使用样式查询的钥匙帧碰撞检测世界碰撞:使用样式查询的钥匙帧碰撞检测Apr 23, 2025 am 10:42 AM

互动CSS动画和元素相互启动的元素在2025年似乎更合理。虽然不需要在CSS中实施乒乓球,但CSS的灵活性和力量的增加,可以怀疑Lee&Aver Lee&Aver Lee有一天将是一场

使用CSS背景过滤器进行UI效果使用CSS背景过滤器进行UI效果Apr 23, 2025 am 10:20 AM

有关利用CSS背景滤波器属性来样式用户界面的提示和技巧。您将学习如何在多个元素之间进行背景过滤器,并将它们与其他CSS图形效果集成在一起以创建精心设计的设计。

微笑吗?微笑吗?Apr 23, 2025 am 09:57 AM

好吧,事实证明,SVG的内置动画功能从未按计划进行弃用。当然,CSS和JavaScript具有承载负载的能力,但是很高兴知道Smil并没有像以前那样死在水中

'漂亮”在情人眼中'漂亮”在情人眼中Apr 23, 2025 am 09:40 AM

是的,让#039;跳上文字包装:Safari Technology Preview In Pretty Landing!但是请注意,它与在铬浏览器中的工作方式不同。

CSS-tricks编年史XLIIICSS-tricks编年史XLIIIApr 23, 2025 am 09:35 AM

此CSS-tricks更新了,重点介绍了年鉴,最近的播客出现,新的CSS计数器指南以及增加了几位新作者,这些新作者贡献了有价值的内容。

tailwind的@Apply功能比听起来更好tailwind的@Apply功能比听起来更好Apr 23, 2025 am 09:23 AM

在大多数情况下,人们展示了@Apply的@Apply功能,其中包括Tailwind的单个property实用程序之一(会改变单个CSS声明)。当以这种方式展示时,@Apply听起来似乎很有希望。如此明显

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具