头闻号

陈浩鑫

耳机|MP3|手机耳机|电子用塑胶制品

首页 > 新闻中心 > 科技常识:CSS3属性box
科技常识:CSS3属性box
发布时间:2024-11-10 13:15:40        浏览次数:5        返回列表

今天小编跟大家讲解下有关CSS3属性box-sizing使用指南 ,相信小伙伴们对这个话题应该有所关注吧,小编也收集到了有关CSS3属性box-sizing使用指南 的相关资料,希望小伙伴们看了有所帮助。

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)

复制代码代码如下: .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="https://www.aidi.net.cn//css/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 : 500IE8/9/10: 480Safari5/6: 480Chrome21/Firefox14: 480IE6/7不支持box-sizing 内容区的宽度是500 所以输出的值也是500 而其他支持该属性的浏览器 内容区宽度减去了 padding 和 border 的值 变成了480.

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

来源:爱蒂网