在CSS中,盒子模型有W3C标准盒子模型和IE盒子模型两种,这里所谈的是基于W3C标准的盒子模型。
所有HTML元素都可以看作盒子,即所有HTML标签都支持盒子模型的属性,在CSS中,"box model"这一术语是用来设计和布局时使用。CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:边距,边框,填充,和实际内容。
- Margin(外边距) - 清除边框外的区域,外边距是透明的。
- Border(边框) - 围绕在内边距和内容外的边框。
- Padding(内边距) - 清除内容周围的区域,内边距是透明的。
- Content(内容) - 盒子的内容,显示文本和图像。
同时我们可以发现,该元素的宽度和高度是内容的宽度和高度。
内边距、边框和外边距都是可选的,默认值是零。同时可以使用通用选择器对所有元素进行设置:
* {
margin:;
padding:;
}
内边距
元素的内边距在边框和内容区之间。控制该区域最简单的属性是 padding 属性。
如果您希望所有 h1 元素的各边都有 10 像素的内边距,只需要这样:
h1 {padding: 10px;}
您还可以按照上、右、下、左的顺序分别设置各边的内边距,各边均可以使用不同的单位或百分比值:
h1 {padding: 10px 0.25em 2ex 20%;}
也通过使用下面四个单独的属性,分别设置上、右、下、左内边距:
- padding-top
- padding-right
- padding-bottom
- padding-left
边框
元素的边框 (border) 是围绕元素内容和内边距的一条或多条线。
每个边框有 3 个方面:宽度、样式,以及颜色。
样式:
- border-style
- border-top-style
- border-right-style
- border-bottom-style
- border-left-style
宽度:
- border-width
- border-top-width
- border-right-width
- border-bottom-width
- border-left-width
颜色:
- border-color
- border-top-color
- border-right-color
- border-bottom-color
- border-left-color
使用方式和内边距一致。
外边距
围绕在元素边框的空白区域是外边距。设置外边距会在元素外创建额外的“空白”。设置外边距的最简单的方法就是使用 margin 属性,这个属性接受任何长度单位、百分数值甚至负值。
与内边距的设置相同,这些值的顺序是从上外边距 (top) 开始围着元素顺时针旋转的:
margin: top right bottom left
另外,还可以为 margin 设置一个百分比数值:
p {margin : 10%;}
百分数是相对于父元素的 width 计算的。上面这个例子为 p 元素设置的外边距是其父元素的 width 的 10%。
- margin
- margin-top
- margin-right
- margin-bottom
- margin-left
外边距合并
外边距合并指的是,当两个垂直外边距相遇时,它们将形成一个外边距。合并后的外边距的高度等于两个发生合并的外边距的高度中的较大者。
同时需要注意:只有普通文档流中块框的垂直外边距才会发生外边距合并。行内框、浮动框或绝对定位之间的外边距不会合并。
更多的信息请参考:http://www.w3school.com.cn/css/css_margin_collapsing.asp