CSS3属性box-sizing使用指南
box-sizg用于改变CSS盒子模型,从而改变元素宽高的计算方式。
box-sizg取值如下
box-sizg: content-box | paddg-box | border-box
默认值是 content-box ,对应CSS2.1规范中标准的盒子模型计算方式,即 width 和 height 是内容区的宽与高, 不包括边框,内边距,外边距;
paddg-box 根据MDN的说法,目前还是一个实验性的属性, width 和 height 包括内容区和内边距,不包括边框和外边据;
border-box 包括内边距与边框,不包括外边距。这是IE 怪异模式(Quirks mode)使用的 盒模型 。
例子(摘自MDN)
/ support Firefox, WebKit, Opera and IE8+ /
.example {
-moz-box-sizg: border-box;
box-sizg: border-box;
}
对JS的影响
根据MDN的叙述
由wdow.getComputedStyle 获取height时不会考虑box-sizg, 至少 Firefox 18 (bug 520992) 与 Inter Explorer 9 是这样, 不过Chrome 24 不是(其它浏览器未测试). 注意 IE9 currentStyle 不能返回正确的height值。
关于Firefox 18及IE9之后的版本,我还没有测试。
关于jQuery中 .width() 和 .height() 的返回值
jQuery 1.8 版本之后增加了对 box-sizg 的支持,但这还与浏览器是否支持 box-sizg 有关,简而言之,1.8版本之后, .width() 和 .height() 返回的永远都是内容区的宽和高,见如下代码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"/>
<style type="text/css">
#contaer {
-moz-box-sizg: border-box;
box-sizg: border-box;
width: 500px;
paddg: 5px;
border: 5px solid gold;
}
</style>
<script src="js/jquery-1.8.0.js"></script>
</head>
<body>
<div id="contaer"></div>
<script>
var $el = $('#contaer')
var w = $el.width();
console.log(w)
</script>
</body>
</html>
各浏览器打印结果如下
IE6/7 : 500
IE8/9/10: 480
Safari5/6: 480
Chrome21/Firefox14: 480
IE6/7不支持box-sizg,内容区的宽度是500,所以输出的值也是500,而其他支持该属性的浏览器,内容区宽度减去了 paddg 和 border 的值,变成了480.
另jquery中的 .outerWidth() 和 .outerHeight() 方法不受影响。
网站设计
- 静宁会SEO的网站建设公司:全面提升您的网络影
- 提升在线业务的关键:选择最佳的丽水网站建设
- 浙江网站优化发展潜力如何
- 井研专业的网站建设公司:打造您的在线品牌
- 灵山SEO网站建设公司:提升您的在线业务表现
- 蒙城网站建设优化公司:提升您网站表现的理想
- 阳谷企业网站优化:提升线上业务力的关键
- 樟树专业的网站建设公司:打造您在线业务的坚
- 通河百度SEO排名的策略与技巧
- 重庆百度快照排名如何进行精准的客户引流
- 重庆百度快照排名
- 常宁便宜的建站公司:助您轻松打造在线业务
- 巫溪百度网站优化:提升网站曝光率与流量的关
- 湖北整站优化怎么做才能放大客户需求
- 闸北网站建设多少钱?全面解析与预算规划
- 辽宁企业网站优化怎么做电话营销