此页面 已准备就绪

注意: WebPlatform 项目在 2012 年至 2015 年间由多个维护者支持,现已停止维护。该网站现在可在 github 上找到。

box-sizing

摘要

box-sizing 属性改变了 CSS 盒子模型,用于计算元素的宽度和高度,使其等于内容、内边距或边框盒的宽度和高度。

概述表

初始值
content-box
适用范围
所有接受宽度或高度的元素
继承
媒体
视觉
计算值
指定值
可动画

CSS 对象模型属性
:

语法

  • box-sizing: border-box
  • box-sizing: content-box
  • box-sizing: padding-box

content-box
widthheight 属性(也包括 min-widthmax-widthmin-heightmax-height 属性)的计算方式是内容区域的宽度/高度,不包括边框、外边距或内边距。这是 CSS2.1 规范中宽度和高度的传统行为。
padding-box
元素的 widthheight(也包括 min-widthmax-widthmin-heightmax-height 属性)的计算方式是内容区域的宽度/高度加上 padding。内容区域的尺寸是通过从元素的每一侧减去内边距宽度来计算的。如果计算值小于 0,则尺寸属性设置为 0。
border-box
元素的 widthheight(也包括 min-widthmax-widthmin-heightmax-height 属性)的计算方式是内容区域的宽度/高度加上 paddingborder

内容区域的尺寸是通过从元素的每一侧减去内边距和边框宽度来计算的。如果计算值小于 0,则尺寸属性设置为 0。

示例

以下示例假定标记如下所示。

<div class="parent">
    <div class="child"></div>
</div>

此 CSS 使子 <div> 始终占据其父元素宽度的一半。这是因为其 box-sizing 设置为 border-box,因此总宽度始终是内容加上内边距加上边框。随着边框和内边距变厚,元素不会变大。相反,内容会缩小以腾出空间。

/* Support Firefox, WebKit, Opera and IE8+ */

.parent {
   width: 50%;
   height: 200px;
   background: red;
 }

 .child {
    border: 30px solid rgba(0,0,0,0.5);
    float: left;
    padding: 3rem;
    background: blue;
    width: 50%;
    height: 100px;
    box-sizing: border-box;
 }

查看实时示例

在 Safari 5 和 Chrome 中,类型为 search 的输入元素以 border-box 渲染。您可以使用以下代码在所有浏览器中标准化此行为。

input[type="search"] {
    box-sizing: content-box;
}

相关规范

CSS Level 3 - Basic User Interface Module
W3C 工作草案

参见

相关文章

Box Model

其他文章

外部资源

署名