CSS 框模型

一,CSS 框模型 (Box Model)

规定元素框处理元素内容、内边距边框 和 外边距 的方式。

以下图所示:css

 

二,CSS padding属性

CSS padding 属性定义元素边框与元素内容之间的空白区域。padding 属性接受长度值或百分比值,但不容许使用负值。浏览器

能够直接设置四个方向(上,右,下,左)的内边距:post

h1 {padding: 10px;}  
  
或者
h1 {padding: 10px 0.25em 2ex 20%;}

也可经过使用下面四个单独的属性,分别设置上、右、下、左内边距:spa

内边距的百分比数值

前面提到过,能够为元素的内边距设置百分数值。百分数值是相对于其父元素的 width 计算的,这一点与外边距同样。因此,若是父元素的 width 改变,它们也会改变。ssr

下面这条规则把段落的内边距设置为父元素 width 的 10%:code

p {padding: 10%;}

例如:若是一个段落的父元素是 div 元素,那么它的内边距要根据 div 的 width 计算。blog

<div style="width: 200px;"> <p>This paragragh is contained within a DIV that has a width of 200 pixels.</p> </div> 

注意:上下内边距与左右内边距一致;即上下内边距的百分数会相对于父元素宽度设置,而不是相对于高度。继承

 

默认值: 0
继承性: no
版本: CSS1
JavaScript 语法: object.style.padding="10px 5px"

可能的值

描述
auto 浏览器计算内边距。
length 规定以具体单位计的内边距值,好比像素、厘米等。默认值是 0px。
% 规定基于父元素的宽度的百分比的内边距。
inherit 规定应该从父元素继承内边距。

 

 

三,CSS 边框属性

CSS border 属性容许你规定元素边框的样式(border-style)、宽度(border-width)和颜色(border-color)。(若是有可见背景的话,元素的背景会延伸到边框区域,由于元素的背景是内容、内边距和边框区的背景)ip

既能够直接定义边框的样式、宽度、颜色,也能够定义单边样式、宽度、颜色。以下图所示:文档

属性 描述
border 简写属性,用于把针对四个边的属性设置在一个声明。
border-style 用于设置元素全部边框的样式,或者单独地为各边设置边框样式。
border-width 简写属性,用于为元素的全部边框设置宽度,或者单独地为各边边框设置宽度。
border-color 简写属性,设置元素的全部边框中可见部分的颜色,或为 4 个边分别设置颜色。
border-bottom 简写属性,用于把下边框的全部属性设置到一个声明中。
border-bottom-color 设置元素的下边框的颜色。
border-bottom-style 设置元素的下边框的样式。
border-bottom-width 设置元素的下边框的宽度。
border-left 简写属性,用于把左边框的全部属性设置到一个声明中。
border-left-color 设置元素的左边框的颜色。
border-left-style 设置元素的左边框的样式。
border-left-width 设置元素的左边框的宽度。
border-right 简写属性,用于把右边框的全部属性设置到一个声明中。
border-right-color 设置元素的右边框的颜色。
border-right-style 设置元素的右边框的样式。
border-right-width 设置元素的右边框的宽度。
border-top 简写属性,用于把上边框的全部属性设置到一个声明中。
border-top-color 设置元素的上边框的颜色。
border-top-style 设置元素的上边框的样式。
border-top-width 设置元素的上边框的宽度。

 

 

四,CSS margin属性

围绕在元素边框的空白区域是外边距(默认是空白的。设置外边距会在元素外建立额外的“空白”。

设置外边距的最简单的方法就是使用 margin 属性,这个属性接受任何长度单位、百分数值甚至负值。

能够直接设置四个方向(上,右,下,左)的外边距:

h1 {margin: 10px;}  
  
或者
h1 {margin: 10px 0.25em 2ex 20%;}

也能够使用下列任何一个属性来只设置相应上的外边距,而不会直接影响全部其余外边距:

 

默认值: 0
继承性: no
版本: CSS1
JavaScript 语法: object.style.margin="10px 5px"

可能的值

描述
auto 浏览器计算外边距。
length 规定以具体单位计的外边距值,好比像素、厘米等。默认值是 0px。
% 规定基于父元素的宽度的百分比的外边距。
inherit 规定应该从父元素继承外边距。

 

下面介绍:外边距合并

外边距合并指的是,当两个垂直外边距相遇时,它们将造成一个外边距。合并后的外边距的高度等于两个发生合并的外边距的高度中的较大者。(ps:只有普通文档流中块框的垂直外边距才会放生外边距合并,行内框、浮动框或绝对定位框之间的外边距不会合并。)

当一个元素出如今另外一个元素上面时,第一个元素的下外边距与第二个元素的上外边距会发生合并。请看下图:

当一个元素包含在另外一个元素中时(假设没有内边距或边框把外边距分隔开),它们的上和/或下外边距也会发生合并。请看下图:

尽管看上去有些奇怪,可是外边距甚至能够与自身发生合并。

假设有一个空元素,它有外边距,可是没有边框或填充。在这种状况下,上外边距与下外边距就碰到了一块儿,它们会发生合并:

若是这个外边距遇到另外一个元素的外边距,它还会发生合并:

这就是一系列的段落元素占用空间很是小的缘由,由于它们的全部外边距都合并到一块儿,造成了一个小的外边距:

 

 

 

文章出自: http://www.cnblogs.com/iceflorence/
相关文章
相关标签/搜索