element : 元素。css
padding : 内边距,也有资料将其翻译为填充。浏览器
border : 边框。ui
margin : 外边距,也有资料将其翻译为空白或空白边。spa
盒子模型有两种,分别是 IE 盒子模型和标准 W3C 盒子模型。 翻译
盒子模型是CSS中一个重要的概念,理解了盒子模型才能更好的排版。其实盒子模型有两种,分别是 IE 盒子模型和标准 W3C 盒子模型。他们对盒子模型的解释各不相同,先来看看咱们熟悉的标准盒子模型代理
和上面看到的图有些区别,这里把各属性支持也画出来。code
IE 盒子模型的范围也包括 margin、border、padding、content,和标准 W3C 盒子模型不一样的是:IE 盒子模型的 content 部分包含了 border 和 pading。 orm
一、W3C的标准Box Model:element
/*外盒尺寸计算(元素空间尺寸)*/ Element空间高度 = content height + padding + border + margin Element 空间宽度 = content width + padding + border + margin /*内盒尺寸计算(元素大小)*/ Element Height = content height + padding + border (Height为内容高度) Element Width = content width + padding + border (Width为内容宽度)
二、IE)传统下Box Model(IE6如下,不含IE6版本或“QuirksMode下IE5.5+”):it
/*外盒尺寸计算(元素空间尺寸)*/ Element空间高度 = content Height + margin (Height包含了元素内容宽度,边框宽度,内距宽度) Element空间宽度 = content Width + margin (Width包含了元素内容宽度、边框宽度、内距宽度) /*内盒尺寸计算(元素大小)*/ Element Height = content Height(Height包含了元素内容宽度,边框宽度,内距宽度) Element Width = content Width(Width包含了元素内容宽度、边框宽度、内距宽度)
具体举例:
例:一个盒子的 margin 为 20px,border 为 1px,padding 为 10px,content 的宽为 200px、高为 50px,
若是用标准 W3C 盒子模型解释,那么这个盒子须要占据的位置为:宽 20*2+1*2+10*2+200=262px、高 20*2+1*2+10*2+50=112px,盒子的实际大小为:宽 1*2+10*2+200=222px、高 1*2+10*2+50=72px;
若是用IE 盒子模型,那么这个盒子须要占据的位置为:宽 20*2+200=240px、高 20*2+50=70px,盒子的实际大小为:宽 200px、高 50px
那应该选择哪中盒子模型呢?固然是“标准 W3C 盒子模型”了。怎么样才算是选择了“标准 W3C 盒子模型”呢?很简单,就是在网页的顶部加上 DOCTYPE 声明。若是不加 DOCTYPE 声明,那么各个浏览器会根据本身的行为去理解网页,即 IE 浏览器会采用 IE 盒子模型去解释你的盒子,而 FF 会采用标准 W3C 盒子模型解释你的盒子,因此网页在不一样的浏览器中就显示的不同了。反之,若是加上了 DOCTYPE 声明,那么全部浏览器都会采用标准 W3C 盒子模型去解释你的盒子,网页就能在各个浏览器中显示一致了
元素框的最内部分是实际的内容,直接包围内容的是内边距。内边距呈现了元素的背景。内边距的边缘是边框。边框之外是外边距,外边距默认是透明的,所以不会遮挡其后的任何元素。
提示:背景应用于由内容和内边距、边框组成的区域。
内边距、边框和外边距都是可选的,默认值是零。可是,许多元素将由用户代理样式表设置外边距和内边距。能够经过将元素的 margin 和 padding 设置为零来覆盖这些浏览器样式。这能够分别进行,也可使用通用选择器对全部元素进行设置:
* {
margin: 0;
padding: 0;
}
在 CSS 中,width 和 height 指的是内容区域的宽度和高度。增长内边距、边框和外边距不会影响内容区域的尺寸,可是会增长元素框的总尺寸。
假设框的每一个边上有 10 个像素的外边距和 5 个像素的内边距。若是但愿这个元素框达到 100 个像素,就须要将内容的宽度设置为 70 像素,请看下图:
#box {
width: 70px;
margin: 10px;
padding: 5px;
}
提示:内边距、边框和外边距能够应用于一个元素的全部边,也能够应用于单独的边。
提示:外边距能够是负值,并且在不少状况下都要使用负值的外边距。
参考地址:http://www.w3school.com.cn/css/css_boxmodel.asp