详细认识一下CSS盒子模型

定义浏览器

CSS把每一个元素当作是一个个单独的框,这里就叫它“元素框”吧。而CSS 盒子模型 (Box Model) 能够理解成一种规范,它规定了元素框处理其“最里边的内容区域(例如文本,图像等)“内容周围填充的区域边框” “边界区域的方式。ide

PS: 为了方便区分概念,一般也会把“填充”叫作“内边距”,把“边界”叫作“外边距”。spa

wKiom1mauPbRofl6AAAfTAb0_NU590.gif-wh_50

元素框的最内部分是实际的内容,直接包围内容的是内边距。内边距呈现了元素的背景。内边距的边缘是边框。边框之外是外边距,外边距默认是透明的,所以不会遮挡其后的任何元素。get

总之,盒子模型由内到外组成: 内容区域(content) --> 填充(padding) --> 边框(border) --> 边界(margin)it

在 CSS 中,width 和 height 仅仅指的是内容区域的宽度和高度。io


几个提示class

背景应用于由内容和内边距、边框组成的区域。也就是若是你设置了背景色,那么内容、内边距、边框都会先被背景色填充,而后内容和边框的颜色会将其覆盖。若是你将内容和边框的颜色设置成透明色就能看得出来。浏览器兼容性

内边距、边框和外边距能够应用于一个元素的全部边,也能够应用于单独的边。也就是上下左右你可选择任何一边设置,或者所有。兼容性

外边距能够是负值,并且在不少状况下都要使用负值的外边距。内边距不能用负值。model


浏览器兼容性

一旦为页面设置了恰当的 DTD,大多数浏览器都会按照上面的图示来呈现内容。然而 IE 5 6 的呈现倒是不正确的。根据 W3C 的规范,元素内容占据的空间是由 width/height 属性设置的,而内容周围的 padding border 值是另外计算的。不幸的是,IE5.X 6 使用本身的非标准模型。这些浏览器的 width /height属性不仅是内容的宽度,而是内容、内边距和边框的宽度的总和。

虽然有方法解决这个问题。可是目前最好的解决方案是回避这个问题。也就是,不要给元素添加具备指定宽度的内边距,而是尝试将内边距或外边距添加到元素的父元素和子元素。


  PS:若是对你有帮助,就顺手点个赞吧~

相关文章
相关标签/搜索