CSS3 box-sizing属性


Posted in HTML / CSS onApril 17, 2009

说到 IE 的 bug,一个臭名昭著的例子是它对于“盒模型”的错误解释:在 IE5.x 以及 Quirks 模式的 IE6/7 中,将 border 与 padding 都包含在 width 之内。这为前端工程师的工作平添了不少麻烦,几户每个需要定义尺寸的 box 都要思量一下:是否触发了“盒模型 bug”?

同时,由于另一撮浏览器对标准的遵从,我们在精确定义一个在有限空间内显示的 box 时,也需要计算一下:留给它的空间只有那么大,刨去 border 和 padding,我们该把它的 width 写成多少呢?

这种情况在 CSS3 时代有了改善,得益于这个叫做 box-sizing 的属性,它具有“content-box”和“border-box”两个值。

  • 定义 box-sizing: content-box; 时,浏览器对盒模型的解释遵从我们之前认识到的 W3C 标准;
  • 定义 box-sizing: border-box; 时,浏览器对盒模型的解释与 IE6 相同;

CSS3 box-sizing属性

为什么说这个属性“迟来”呢?IE 对于盒模型的解释固然不符合 W3C 的规范,但是也有它的好处:无论如何改动 border 与 padding 的值,都不会导致 box 总尺寸发生变化,也就不会打乱页面整体布局。而在 Firefox 等现代浏览器下,如果我们要改变一下 padding 的值,就不得不重新计算 box 的 width。现在 IE6 寿终正寝,这个 CSS 属性未免有些姗姗来迟。

试用这个新属性,Firefox 请使用 -moz-box-sizing,Safari / WebKit 请使用 -webkit-box-sizing,Opera 直接用 box-sizing 即可。

HTML / CSS 相关文章推荐
CSS3 渐变(Gradients)之CSS3 线性渐变
Jul 08 HTML / CSS
css3 自定义字体font-face使用介绍
May 14 HTML / CSS
用CSS3写的模仿iPhone中的返回按钮
Apr 04 HTML / CSS
HTML5 贪吃蛇游戏实现思路及源代码
Sep 03 HTML / CSS
HTML5 Convas APIs方法详解
Apr 24 HTML / CSS
HTML5新特性之用SVG绘制微信logo
Feb 03 HTML / CSS
canvas 橡皮筋式线条绘图应用方法
Feb 13 HTML / CSS
html5用video标签流式加载的实现
May 20 HTML / CSS
网站性能延迟加载图像的五种技巧(小结)
Aug 13 HTML / CSS
CSS变量实现主题切换的方法
Jun 23 HTML / CSS
DIV CSS实现网页背景半透明效果
Dec 06 HTML / CSS
CSS三大特性继承性、层叠性和优先级详解
Jan 18 HTML / CSS
CSS3伪类选择器:nth-child()
Apr 02 #HTML / CSS
CSS3教程:新增加的结构伪类
Apr 02 #HTML / CSS
CSS3五个技巧给你的网站带来出色的效果
Apr 02 #HTML / CSS
CSS3教程:边框属性border的极致应用
Apr 02 #HTML / CSS
CSS3中的5个有趣的新技术
Apr 02 #HTML / CSS
介绍CSS3使用技巧5个
Apr 02 #HTML / CSS
CSS3教程(1):什么是CSS3
Apr 02 #HTML / CSS
You might like
PHP新手入门学习方法
2011/05/08 PHP
php和nginx交互实例讲解
2019/09/24 PHP
php实现通过stomp协议连接ActiveMQ操作示例
2020/02/23 PHP
js 代码优化点滴记录
2012/02/19 Javascript
js禁止页面使用右键(简单示例代码)
2013/11/13 Javascript
js的Boolean对象初始值示例
2014/03/04 Javascript
浅谈javascript的call()、apply()、bind()的用法
2016/02/21 Javascript
javascript数组遍历的方法实例分析
2016/09/13 Javascript
如何获取元素的最终background-color
2017/02/06 Javascript
Bootstrap的popover(弹出框)在append后弹不出(失效)
2017/02/27 Javascript
Nodejs基于LRU算法实现的缓存处理操作示例
2017/03/17 NodeJs
js 获取json数组里面数组的长度实例
2017/10/31 Javascript
p5.js实现斐波那契螺旋的示例代码
2018/03/22 Javascript
jquery实现搜索框功能实例详解
2018/07/23 jQuery
Vue 样式绑定的实现方法
2019/01/15 Javascript
node.js express捕获全局异常的三种方法实例分析
2019/12/27 Javascript
Js参数RSA加密传输之jsencrypt.js的使用
2020/02/07 Javascript
如何在JavaScript中创建具有多个空格的字符串?
2020/02/23 Javascript
python搜索指定目录的方法
2015/04/29 Python
python3.5 + PyQt5 +Eric6 实现的一个计算器代码
2017/03/11 Python
详解python之多进程和进程池(Processing库)
2017/06/09 Python
Python判断一个文件夹内哪些文件是图片的实例
2018/12/07 Python
Python+OpenCV+pyQt5录制双目摄像头视频的实例
2019/06/28 Python
python pygame实现滚动横版射击游戏城市之战
2019/11/25 Python
Django Serializer HiddenField隐藏字段实例
2020/03/31 Python
大唐电信科技股份有限公司java工程师面试经历
2016/12/09 面试题
学生励志演讲稿
2014/01/06 职场文书
安全标准化汇报材料
2014/02/03 职场文书
超市中秋节活动方案
2014/02/12 职场文书
经典而简洁的婚礼主持词
2014/03/13 职场文书
竞选大队委员演讲稿
2014/04/28 职场文书
2014年学校工作总结
2014/11/20 职场文书
2014年行政执法工作总结
2014/12/11 职场文书
课外活动实习计划
2015/01/19 职场文书
2015年党日活动总结范文
2015/03/25 职场文书
PyCharm 配置SSH和SFTP连接远程服务器
2022/05/11 Python