w3school.com.cn里对相对定位如下描述:
CSS 相对定位
相对定位是一个非常容易掌握的概念。如果对一个元素进行相对定位,它将出现在它所在的位置上。然后,可以通过设置垂直或水平位置,让这个元素“相对于”它的起点进行移动。
如果将 top 设置为 20px,那么框将在原位置顶部下面 20 像素的地方。如果 left 设置为 30 像素,那么会在元素左边创建 30 像素的空间,也就是将元素向右移动。
对此比较容易理解,但当top的值为百分比时就会如下解析:直接对父元素计算百分比,即此时绝对定位和相对定位时,top值百分比计算是相同的。但原点不同,position是定义定位原点的,百分比是基于父容器的长宽计算的。并非相对定位时就基于自己计算百分比的。
如下示例:
百分比的计算实际如下,与绝对还是相对定位无关:
- top,bottom:基于父容器的高;
- left,right:基于父容器的宽;
- margin-top,margin-right,margin-bottom,margin-left:基于父容器的宽;
- padding-top,padding-right,padding-bottomm,padding-left:基于父容器的宽;
- border:哈哈不允许如此拉,似乎~
定位计算如下:
- absolute:原点定在有定位的父容器左上角;
- relative:原点定在元素本身原有位置的左上角;
浮动计算如下:
- left:起始浮动点在元素本身所在位置最可能的左边;
- right:起始浮动点在元素本身所在位置最可能的右边;
可结合这篇文章:http://blog.idea5.org/css-position.html