手机
当前位置:查字典教程网 >网页设计 > Div+Css教程 >CSS3属性box-sizing使用指南
CSS3属性box-sizing使用指南
摘要:box-sizing用于改变CSS盒子模型,从而改变元素宽高的计算方式。box-sizing取值如下:box-sizing:content-...

box-sizing用于改变CSS盒子模型,从而改变元素宽高的计算方式。

box-sizing取值如下:

box-sizing: content-box | padding-box | border-box

默认值是 content-box ,对应CSS2.1规范中标准的盒子模型计算方式,即 width 和 height 是内容区的宽与高, 不包括边框,内边距,外边距;

padding-box 根据MDN的说法,目前还是一个实验性的属性, width 和 height 包括内容区和内边距,不包括边框和外边据;

border-box 包括内边距与边框,不包括外边距。这是IE 怪异模式(Quirks mode)使用的 盒模型 。

例子(摘自MDN)

/* support Firefox, WebKit, Opera and IE8+ */

.example {

-moz-box-sizing: border-box;

box-sizing: border-box;

}

对JS的影响

根据MDN的叙述:

由window.getComputedStyle 获取height时不会考虑box-sizing, 至少 Firefox 18 (bug 520992) 与 Internet Explorer 9 是这样, 不过Chrome 24 不是(其它浏览器未测试). 注意 IE9 currentStyle 不能返回正确的height值。

关于Firefox 18及IE9之后的版本,我还没有测试。

关于jQuery中 .width() 和 .height() 的返回值

jQuery 1.8 版本之后增加了对 box-sizing 的支持,但这还与浏览器是否支持 box-sizing 有关,简而言之,1.8版本之后, .width() 和 .height() 返回的永远都是内容区的宽和高,见如下代码:

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8"/>

<style type="text/css">

#container {

-moz-box-sizing: border-box;

box-sizing: border-box;

width: 500px;

padding: 5px;

border: 5px solid gold;

}

</style>

<script src="js/jquery-1.8.0.js"></script>

</head>

<body>

<div id="container"></div>

<script>

var $el = $('#container')

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-sizing,内容区的宽度是500,所以输出的值也是500,而其他支持该属性的浏览器,内容区宽度减去了 padding 和 border 的值,变成了480.

另:jquery中的 .outerWidth() 和 .outerHeight() 方法不受影响。

【CSS3属性box-sizing使用指南】相关文章:

CSS 文本渲染属性text-rendering的介绍和使用示例

CSS定位属性Position详解

CSS-float的属性

CSS属性display:inline

css3 box-sizing属性使用参考指南

css3 border-image使用说明

CSS3 transition规范的实际使用经验

box-sizing让CSS布局更加直观

CSS3之边框多颜色Border-color属性使用

CSS3属性box-shadow使用教程

精品推荐
分类导航