网页设计中绝对定位元素的放置和大小

网站建设中,把“放置”和“大小”这两个概念放在一起看上去有些奇怪,不过对于绝对定位元素来说,这是必要的,因为规范把它们紧密地绑在一起。如果网页设计人员仔细考虑,这也不那么奇怪。请考虑如果一个元素使用4个偏移属性来定位会发生什么情况,如下:

#masthead h1 {position: absolute; top: 1em; left: lent; right: 25%; bottom: l0px;

margin: 0; padding: 0; background: silver;}

在此,h1元素框的高度和宽度由其外边距边界的放置决定,如图10-41所示s

图10-41:根据偏移属性确定元素的高度

如果包含块更高,那么h1也会更高;如果包含块更窄,h1也会跟着更窄。如果向h1 增加外边距或内边距,这会对h1的高度和宽度计算值有进一步的影响。

但是网页设计人员这样做之后,再试图设置一个显式的高度和宽度会怎么样呢?

#masthead h1 {position: absolute; top: 0; left: 1em; right: 10%; bottom: 0; margin: 0; padding: 0; height: 1em; width: 50%; background: silver;}

必须做些工作,因为所有这些值都正确是不太可能的。实际上,包含块宽度必须是h1的 font-size计算值的2.5倍,这样以上的值才能正确。如果是其他宽度,则说明至少有一个值是错误的,相应地必须将其忽略。到底哪一个值是错误的,这取决于很多因素,而且根据元素是替换元素还是非替换元素还会有所不同。

为此考虑以下规则:

#masthead h1 {position: absolute; top: auto; left: auto;}

结果会是什么呢?网页设计人员可以看到,答案并不是“将值重置为0”。下一节将介绍真正的答案。

网站建设、网络营销咨询专线:0871-63535511(点击可一键拨号)