CSS网页布局教程:绝对定位和相对定位。通过本文你绝对能理解绝对定位和相对定位了,如果你看完本篇文章还不理解绝对定位和相对定位的话,我看你就别学CSS了!哈哈! 概要: 本文主要描述XHTML中相对定位和绝对定位各自的本质、用法、区别和两者之间的关系。以及使用CSS的Left、Right、Top、Bottom属性(偏移属性)和Margin属性(外边距)对定位块级元素进行布局的方法。 说明: 占位空间:元素在文档流中所占据的空间。 下面分3种情况分别对相对定位和绝对定位进行讨论: 图1为未定位时的初始效果, 效果图: (责任编辑:admin)![]() 图1
一、用相对定位布局块级元素 1.仅使用left、right、top和bottom属性布局相对定位元素的情况 图2中,设置元素的left和top的值,对box2进行布局,可以发现除了box2偏移之外,其他块级元素的位置没有被影响,可见box2的占位空间还是存在的。 效果图:
2.仅使用margin属性布局相对定位元素的情况 图3中,box1和box2都设置了元素margin-bottom的值,值等于它们高度的负值。box1和box2物理空间没有改变,占位空间高度为0。box3的margin-bottom值设置为0,物理空间没有改变,占位空间高度不变。再通过margin-left对box2和box3设置左偏移值。 效果图:
![]() 图3
3.混合使用left、right、top和bottom属性与margin属性布局相对定位元素的情况 图4中,box2是在图3的基础上增加设置left的值产生的效果,可见margin-left的值和left的值产生了累加。(偏移量:80px = 110px - 30px) 效果图:
![]() 图4
二、用绝对定位布局块级元素 1.仅使用left、right、top和bottom属性布局绝对定位元素的情况 设置元素为绝对定位元素后,元素的Left、 Right、Top和Bottom属性默认值不是0,只是将元素脱离文档流。以下例子说明这个问题。 效果图:
![]() 图5
以最近的祖先定位元素为参照物的情况 层级关系为: 效果图:
![]() 图6
图7中,为改变参照物(橘色框)后的效果 效果图:
![]() 图7
图8中,参照物为最顶级的元素情况。 效果图:
![]() 图8
2.仅使用margin属性布局绝对定位元素的情况 图9中,使用margin属性布局相对定位元素。 效果图:
![]() 图9
IE6的情况下,box2前面没有兄弟节点,则margin-left的值会出现双倍边距,见图10。 效果图:
![]() 图10
3.混合使用left、right、top和bottom属性与margin属性布局相对定位元素的情况 例如:margin-left:120px; left:-20px; 那么box2的偏移值为120px-20px=100px; 效果图:
![]() 图11
b.绝对定位和相对定位的累加加效果不同,如果top、bottom、left、right属性和margin属性偏移的方向相反,top、bottom、left、right属性值有效,反方向的margin属性值无效,见图12。 效果图:
![]() 图12
总结:
|











