box-sizing

摘要

box-sizing 属性用于更改用于计算元素宽度和高度的默认的CSS盒模型。可以使用此属性来模拟不正确支持CSS框模型规范的浏览器的行为。

key value
初始值 content-box
适用元素 任何可设置width和height的元素

使用方式

/* 关键字值 */
box-sizing: content-box;
box-sizing: border-box;

/* 全局值 */
box-sizing: inherit;
box-sizing: initial;
box-sizing: unset;

/* 为兼容旧版浏览器,需要加上前缀 */
-moz-box-sizing: content-box;
-webkit-box-sizing: content-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;

说明

  • content-box

content-box 是Chrome、Firefox等现代浏览器的缺省值,采用标准的盒子模型计算方式。在计算中,元素的 widthheight 将只包含内容的宽和高,而不包括边框、内边距、外边距的宽度。
即,在content-box中,border、padding、margin都在盒子模型之外。

举个栗子:

.box {
    width: 100px;
    border: 10px solid #000;
}

上述样式在浏览器中实际渲染的宽度将是 120px

  • border-box

border-box 是 IE 的缺省值,及所谓的“怪异模式”。在浏览器渲染时,会将边框、内边距、外边距与内容宽高一同计算。
即,在border-box中,border、padding、margin都在盒子模型中。

依然是上面的栗子:

.box {
    width: 100px;
    border: 10px solid #000;
}

此时上述样式在浏览器中实际渲染的宽度将是 100px

需要注意的是,当设置了border-box后,内容框的宽度不可为负数。
计算公式为:

实际渲染的 width = border + padding + 内容的 width,
实际渲染的 height = border + padding + 内容的 height。

一个“没用”的值

  • padding-box

该可选值只有Firefox实现,并且Firefox在Firefox 50之后移除了该可选值。

兼容性

在这些浏览器中可以使用:
IE 8+、EDGE、Chrome、Firefox、Opera 7+、Safari

在较新的浏览器中,浏览器厂商已经移除了“-webkit”前缀。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,863评论 1 92
  • H5移动端知识点总结 阅读目录 移动开发基本知识点 calc基本用法 box-sizing的理解及使用 理解dis...
    Mx勇阅读 4,703评论 0 26
  • 移动开发基本知识点 一.使用rem作为单位 html { font-size: 100px; } @media(m...
    横冲直撞666阅读 3,584评论 0 6
  • 转载自(http://web.jobbole.com/83915/) 盒子模型 Box-sizing属性一直比较陌...
    居客侠阅读 965评论 0 5
  • 黑豆泡醋功效:养肾、补肾。主要症状是,治疗白头发,耳鸣听力下降,眼花,记忆力下降,因肾影响到脾不好。 视力下降,头...
    美美食谱阅读 807评论 0 0