所有HTML元素可以看作盒子,在CSS中,"box model"这一术语是用来设计和布局时使用。
CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:边距,边框,填充,和实际内容。
盒模型允许我们在其它元素和周围元素边框之间的空间放置元素。
下面的图片说明了盒子模型(Box Model):
margin(外边距) - 清除边框外的区域,外边距是透明的。
border(边框) - 围绕在内边距和内容外的边框。
padding(内边距) - 清除内容周围的区域,内边距是透明的。
content(内容) - 盒子的内容,显示文本或图像。
W3C标准盒子模型中width指的是内容区域content的宽度,height指的是内容区域区域content的高度。
width = 内容区域的宽度
height = 内容区域的高度
W3C标准盒子模型的总宽 = width + 左右内边距(padding) + 左右边框(border) + 左右外边距(margin)
W3C标准盒子模型的总高 = height + 上下内边距(padding) + 上下边框(border) + 上下外边距(margin)
设置标签成W3C 标准盒模型的css属性 如下:
box-sizing: content-box;
ie怪异盒子模型中的width指的是内容、边框、内边距总的宽度(content + border + padding);height指的是内容、边框、内边距总的高度
width = 内容区域的宽度 + 边框 + 内边距
height = 内容区域的高度 + 边框 + 内边距
ie怪异盒子模型的总宽 = width + 左右外边距(margin)
ie怪异盒子模型的总高 = height + 上下外边距(margin)
设置标签成ie怪异盒子模型的css属性 如下:
box-sizing: border-box;
<div class="box"></div> <div class="con"></div>
.box{ position: relative; padding: 10px; width: 100px; height: 100px; background-color: #ccc; border: 1px solid black; box-sizing: border-box; margin: 20px; display: inline-block; vertical-align: top;}.con{ display: inline-block; vertical-align: top; box-sizing: content-box; width: 100px; height: 100px; background-color: red; border: 1px solid gray; padding: 10px; margin: 20px;}