图1:一个元素盒中各组成成分的详细图示,标有相关CSS属性。
(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/webkaifa/)在对象周围添加空白:margin-top、margin-right、margin-bottom、margin-left 及边距属性边距可单独指定,也可在一条缩写规则中加以指定。另外缩写规则还可以对某个对象周围的各个边框进行控制。合法的值通常是用 px 或 em 单位指定的(像素或字体高)。而在 print-specific 样式表单中会相反用 in、cm 或 pt 单位(英寸、厘米或点)。
在所有情况下 %(百分比)值都是合法的,但须谨慎使用;此类值是按照父元素宽度的比例来计算的,漫不经心的赋值会造成意外的后果。这一问题将会在下面对 CSS 盒模型的讨论中加以详述。
除图像外所有内联元素都没有边距,因而无需边距值。关于这些元素的列表,请参阅下面的表2.
自动边距依据不同的情况,auto 的赋值会指示浏览器按照自己样式表中的值来渲染边距。但是,在将这样的边距应用到某个元素上,而该元素的宽度具有意义时,auto 边距会将所有可用空间渲染成空白。
看看下列规则:
.narrowWaisted { width: 16.667em; margin: 1em auto 1em auto;}
class narrowWaisted 的块元素会将自身对齐到可用画布的中心。
或可将某个适当元素的右边距设成某个相对较小的值,而左边距设为 auto 值。
设置完成后,这样的元素就会接近于右对齐。
负边距所有边距属性都可以设为 negative。进行这种设置之后,就能以任意程度抵消相邻的边距。如果将一个足够大的负边距应用到一个足够大的元素上,受其影响的相邻元素甚至可以被重叠。
例如,看看下面简单的 div 元素(取自示例文件 negativemargin1.html。)
div id="header"h1Lovely header/h1/div
div id="content"pOverlapping text is entirely unreadable/p/div
如果用下面的CSS来样式化
body {background-color:white font-family:Geneva, Arial, Helvetica, sans-serif;}
#header { background-color:yellow }
h1 { color:red; font-size:2em; }
就会产生如图 2 所示的效果:
(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/webkaifa/)图2:这个简单示例中的两个元素。看起来很普通。
有意思的是下面这部分。现在我们要通过下面的规则给位于下边的元素的顶部添加一个相当大的负边距:
#content {margin-top:-3em;}
这样我们就会看到该元素上移了,重叠在标题上,如图3所示(实际例子参见negativemargins2.html 示例文件)。
图 3:应用了负边距之后,下边的元素上移并重叠在标题上。
合并边距两个相似并相邻的块元素都有正边距时,两个边距中只有较大那个才会得以应用。如,试试下面的规则:
p { margin: 1em auto 1.5em auto;}
如果按照字面含义对含有这种样式规则的文件进行渲染,连续的两个段落之间的最终边距应该是 2.5em ,即段落 1(1.5em)的底部边距与段落 2(1em)的顶部边距之和。但是,由于合并边距的应用,它们之间的边距只有 1.5em。
在块元素中列表和标题是特例,它们的边距不会与其它块元素的边距相合并。
猜你喜欢