读《css世界》笔记(1)
css流体布局下的宽度分离原则
宽度分离原则就是将width独立占用一层标签,而border、margin、padding利用流动性在内部自适应呈现。
为什么要宽度分离
分离是为了便于维护如下面的css
.box{ width:100px; border:1px solid }
此时.box的宽度是102px,然后设计师需要20px的留白那么现在我们需要增加padding:20px;
.box{ width:100px; border:1px solid; padding:20px; }
此时的.box的宽度是142px增加了40px,跟原来的宽度差异明显,显然布局容易出现问题。为了不影响之前的布局,我们需要重新计算.box的宽度。
.box{ width:60px; border:1px solid; padding:20px; }
如果我们使用了宽度分离原则
.father{ width:102px; } .son{ padding:20px; border:1px solid; }
布局宽度还是102px,只不过子元素的context-box的宽度变为了60px;无论我们怎么改padding值,都不会影响整体布局,浏览器自动计算子元素的宽度。
但是可能会有人说宽度分离多了一层标签,产生了HTML成本。我们还有更好的一种方法,通过改变width的box-sizing属性。
改变width/height作用细节的box-sizing
box-sizing的作用是改变width的作用细节它一下几种属性
.box{box-sizing:content-box}/*默认属性*/ .box{box-sizing:border-box}/*全部支持*/
.box{ box-sizing:border-box; width:100px; }
宽度是100px;
.box{ box-sizing:border-box; width:100px; border:1px solid; }
现在width还是100px;
用box-sizing:border-box;方便简洁,不会产出多余的标签。
但是!!!box-sizing不支持margin属性,还是需要手动计算margin值。
使用box-sizing:border-box;不建议使用通配符*{box-sizing:border-box}设置盒模型。
相关推荐
MrHaoNan 2019-12-19
wangjie 2019-10-25
王为仁 2019-10-11
AnyBisks 2015-12-23
Jolestar 2016-06-02
qiupu 2019-07-01
dazhifu 2019-07-01
yongquanx 2016-08-01
李鴻耀 2016-06-16
opspider 2015-12-23
yibawuqing 2019-06-27
zhouguizhi 2014-08-27
张大晴 2014-08-27
yezi 2019-06-26
jianqi 2019-06-25
icecoffeemzp 2012-09-05
李鴻耀 2017-01-08
BitTigerio 2018-04-18