html5+css3网页制作:三栏布局宽度自适应,三栏布局宽度自适应布局

本文介绍了如何使用CSS3的盒子模型来创建三栏布局,特别是利用`box-flex`属性进行比例划分宽度。在Chrome中布局正常,但在Firefox中出现问题,原因在于未设置父容器宽度。解决方案是为父容器添加`width: 100%`。通过此案例,我们学习了CSS3布局的实践和浏览器兼容性调整。
摘要由CSDN通过智能技术生成

以前做三栏布局时,最常用最简单的方法可能就是:采用float+margin来实现,而CSS3的时代,我们可以有另一种比较“时尚”的方法,就是css3中的盒子模型,代码如下:HTML>

CSS3三栏布局

.container{

display:-webkit-box;

display:-moz-box;

}

div:not(.container){

-webkit-border-radius:5px;

-moz-border-radius:5px;

border-radius:5px;

background:#999;

border:#00C 2px solid;

}

#left,#right{

width:200px;

-webkit-box-sizing:border-box;

-moz-box-sizing:border-box;

padding:20px;

}

#middle{

padding:20px;

-webkit-box-flex:1;

-moz-box-flex:1;

-webkit-box-ordinal-group:2;

-moz-box-ordinal-group:2;

margin:0 5px;

}

#right{

-webkit-box-ordinal-group:2;

-moz-box-ordinal-group:2;

}

Css3三栏布局

middle
left
right

效果如下:

6401ab928b8f7c3ba688fcfc0fbc1e9e.png

总结:这里面主要用到了box-flex属性,这个属性主要是让子容器相对于父容器将宽度按一定的规则划分,如三个子容器分别设置box-flex的值为1,2,3则,三个子容器将按照1:2:3的比例划分宽度。

当然,父容器必须设置成为盒子模型才可以看到效果,比如display:-webkit-box;display:-moz-box;

然而,如果你直接运行上面的代码,chrome里面是没有问题,但是到了FireFox,则变成下面的样子了:

1f62d47950f2abb2aef0c8d0107c1e2c.png

难道这是一个FireFox的Bug?本来左右两边的宽度固定,而中间的却没有自适应宽度。经过与《html5 与css3权威指南》作者的交流,才知道,之所以出现这样的情况是因为没有设置父容器的宽度,当我们给父容器加上width:100%就可以了。。。在此感谢《html5 与css3权威指南》作者……

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值