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 相关文章推荐
使用CSS实现阅读进度条
Feb 27 HTML / CSS
45个非常奇妙的CSS3 特性应用示例
Jan 01 HTML / CSS
css3 给页面加个半圆形导航条主要利用旋转和倾斜样式
Feb 10 HTML / CSS
CSS3实现文字波浪线效果示例代码
Nov 20 HTML / CSS
CSS3 旋转立方体问题详解
Jan 09 HTML / CSS
HTML5实现Notification API桌面通知功能
Mar 02 HTML / CSS
探究 canvas 绘图中撤销(undo)功能的实现方式详解
May 17 HTML / CSS
HTML5 File API改善网页上传功能
Aug 19 HTML / CSS
html5 实现客户端验证上传文件的大小(简单实例)
May 15 HTML / CSS
html5使用canvas实现弹幕功能示例
Sep 11 HTML / CSS
使用canvas对多图片拼合并导出图片的方法
Aug 28 HTML / CSS
html+css实现文字折叠特效实例
Jun 02 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
使用Apache的htaccess防止图片被盗链的解决方法
2013/04/27 PHP
深入PHP FTP类的详解
2013/06/13 PHP
在Mac OS上搭建Nginx+PHP+MySQL开发环境的教程
2015/12/21 PHP
Nginx环境下PHP flush失效的解决方法
2016/10/19 PHP
PHP调用全国天气预报数据接口查询天气示例
2019/02/20 PHP
WordPress伪静态规则设置代码实例
2020/12/10 PHP
用 JSON 处理缓存
2007/04/27 Javascript
JavaScript中实现PHP的打乱数组函数shuffle实例
2014/10/11 Javascript
jQuery中closest()函数用法实例
2015/01/07 Javascript
详解JavaScript中void语句的使用
2015/06/04 Javascript
三个js循环的关键字示例(for与while)
2016/02/16 Javascript
jquery实现简单Tab切换菜单效果
2020/07/17 Javascript
在js里怎么实现Xcode里的callFuncN方法(详解)
2016/11/05 Javascript
js定时器实例分享
2016/12/20 Javascript
vue打包的时候自动将px转成rem的操作方法
2018/06/20 Javascript
详解微信小程序实现仿微信聊天界面(各种细节处理)
2019/02/17 Javascript
openlayers实现地图弹窗
2020/09/25 Javascript
python实现k均值算法示例(k均值聚类算法)
2014/03/16 Python
在Python中调用Ping命令,批量IP的方法
2019/01/26 Python
详解Python3网络爬虫(二):利用urllib.urlopen向有道翻译发送数据获得翻译结果
2019/05/07 Python
Python:Numpy 求平均向量的实例
2019/06/29 Python
python实现的登录与提交表单数据功能示例
2019/09/25 Python
Python延迟绑定问题原理及解决方案
2020/08/04 Python
pandas抽取行列数据的几种方法
2020/12/13 Python
HTML5实现预览本地图片
2016/02/17 HTML / CSS
夜大毕业自我鉴定
2013/10/11 职场文书
文科教师毕业的自我评价
2014/01/16 职场文书
考试作弊被抓检讨书
2014/10/02 职场文书
婚前协议书范本
2014/10/27 职场文书
六年级学生评语大全
2014/12/26 职场文书
出纳岗位职责范本
2015/03/31 职场文书
公司备用金管理制度
2015/08/04 职场文书
中学团支部工作总结
2015/08/13 职场文书
2019学生会干事辞职信
2019/06/27 职场文书
关于 Python json中load和loads区别
2021/11/07 Python
基于Python实现nc批量转tif格式
2022/08/14 Python