CSS box-sizing 属性

CSS box-sizing 属性定义了 user agent 应该如何计算一个元素的总宽度和总高度。

在 CSS 盒子模型的默认定义里,你对一个元素所设置的 width 与 height 只会应用到这个元素的内容区。如果这个元素有任何的 border 或 padding ,绘制到屏幕上时的盒子宽度和高度会加上设置的边框和内边距值。


实例

规定两个并排的带边框的框:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. div.container
  6. {
  7. width:30em;
  8. border:1em solid;
  9. }
  10. div.box
  11. {
  12. box-sizing:border-box;
  13. -moz-box-sizing:border-box; /* Firefox */
  14. -webkit-box-sizing:border-box; /* Safari */
  15. width:50%;
  16. border:1em solid red;
  17. float:left;
  18. }
  19. </style>
  20. </head>
  21. <body>
  22. <div class="container">
  23. <div class="box">这个 div 占据左半部分。</div>
  24. <div class="box">这个 div 占据右半部分。</div>
  25. </div>
  26. </body>
  27. </html>

页面底部有更多实例。


浏览器支持

表格中的数字注明了完全支持该属性的首个浏览器版本。

带 -webkit- 或 -moz- 的数字表示使用前缀的首个版本。

属性
box-sizing10.04.0 -webkit-8.029.02.0 -moz-5.13.2 -webkit-9.5

定义和用法

box-sizing 属性允许您以特定的方式定义匹配某个区域的特定元素。

例如,假如您需要并排放置两个带边框的框,可通过将 box-sizing 设置为 "border-box"。这可令浏览器呈现出带有指定宽度和高度的框,并把边框和内边距放入框中。

默认值:content-box
继承性:no
版本:CSS3
JavaScript 语法:object.style.boxSizing="border-box"

语法

  1. box-sizing: content-box|border-box|inherit;
描述
content-box

这是由 CSS2.1 规定的宽度高度行为。

宽度和高度分别应用到元素的内容框。

在宽度和高度之外绘制元素的内边距和边框。

border-box

为元素设定的宽度和高度决定了元素的边框盒。

就是说,为元素指定的任何内边距和边框都将在已设定的宽度和高度内进行绘制。

通过从已设定的宽度和高度分别减去边框和内边距才能得到内容的宽度和高度。

inherit规定应从父元素继承 box-sizing 属性的值。

相关页面

CSS3 教程:CSS3 用户界面

分类导航