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实现效果超级炫的checkbox复选框和radio单选框
Sep 01 HTML / CSS
利用CSS3实现单选框动画特效示例代码
Sep 26 HTML / CSS
利用css3画个同心圆示例代码
Jul 03 HTML / CSS
CSS3属性 line-clamp控制文本行数的使用
Mar 19 HTML / CSS
html5指南-5.使用web storage存储键值对的数据
Jan 07 HTML / CSS
html5教程调用绘图api画简单的圆形代码分享
Dec 04 HTML / CSS
HTML5标签使用方法详解
Nov 27 HTML / CSS
HTML5 文件域+FileReader 分段读取文件并上传到服务器
Oct 23 HTML / CSS
localStorage的过期时间设置的方法详解
Nov 26 HTML / CSS
html5唤醒APP小记
Mar 27 HTML / CSS
HTML5 SEO优化的一些建议
Aug 27 HTML / CSS
boostrap modal 闪现问题的解决方法
Sep 01 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
不用数据库的多用户文件自由上传投票系统(1)
2006/10/09 PHP
Zend的MVC机制使用分析(一)
2013/05/02 PHP
php读取der格式证书乱码解决方法
2015/06/22 PHP
PHP的关于变量和日期处理的一些面试题目整理
2015/08/10 PHP
CI框架实现优化文件上传及多文件上传的方法
2017/01/04 PHP
php设计模式之组合模式实例详解【星际争霸游戏案例】
2020/03/27 PHP
显示、隐藏密码
2006/07/01 Javascript
jQuery dialog 异步调用ashx,webservice数据的代码
2010/08/03 Javascript
使用jquery插件实现图片延迟加载技术详细说明
2011/03/12 Javascript
IE网页js语法错误2行字符1、FF中正常的解决方法
2013/09/09 Javascript
js判读浏览器是否支持html5的canvas的代码
2013/11/18 Javascript
初识Javascript小结
2015/07/16 Javascript
javascript时间差插件分享
2016/07/18 Javascript
javascript 解决浏览器不支持的问题
2016/09/24 Javascript
jquery ui sortable拖拽后保存位置
2017/04/27 jQuery
Vue 理解之白话 getter/setter详解
2019/04/16 Javascript
ant design的table组件实现全选功能以及自定义分页
2020/11/17 Javascript
原生js实现弹窗消息动画
2020/11/20 Javascript
vue 基于abstract 路由模式 实现页面内嵌的示例代码
2020/12/14 Vue.js
Python 字符串换行的多种方式
2018/09/06 Python
Python matplotlib通过plt.scatter画空心圆标记出特定的点方法
2018/12/13 Python
Python列表切片操作实例总结
2019/02/19 Python
解决python super()调用多重继承函数的问题
2019/06/26 Python
Python基于Twilio及腾讯云实现国际国内短信接口
2020/06/18 Python
python之随机数函数的实现示例
2020/12/30 Python
纯CSS3+DIV实现小三角形边框效果的示例代码
2020/08/03 HTML / CSS
HTML5新增的标签和属性归纳总结
2018/05/02 HTML / CSS
英国简约舒适女装品牌:Great Plains
2018/07/27 全球购物
新加坡第一大健康与美容零售商:屈臣氏新加坡(Watsons Singapore)
2020/12/11 全球购物
类如何去实现接口
2013/12/19 面试题
通用C#笔试题附答案
2016/11/26 面试题
大学新学期计划书
2014/04/28 职场文书
2014年政风行风评议工作总结
2014/10/21 职场文书
2015暑期社会实践个人总结
2015/07/13 职场文书
小学体育课教学反思
2016/02/16 职场文书
JS前端使用Canvas快速实现手势解锁特效
2022/09/23 Javascript