曾经写网页,学css整体上不难,但就是元素定位,始终一知半解,直到今天,本着实践出真知的理念,经过认真测试,总结出了如下结论。
css 定位: position
static : 默认静止定位,元素在正常的文档流中无法移动定位。
absolute
:独立元素,元素从文档流中脱离,会相对于父层(static定位的父层除外)移动定位。
relative :
相对定位,相对本身的位置移动定位,效果等同于相对于父层移动定位。
fixed:
固定定位,相对于窗口移动定位。
注:
1、移动定位是指通过
top,bottom,left,right属性来移动元素位置。
2、任何元素都有相对于父层定位的特性,所以当不用方向移动定位属性,而只用 margin 定位,则必然是相对的位移。
3、absolute 是“独立的,绝对”的意思,我觉得应该是取“独立的”意义更好理解。它所达到的效果就是元素从文档流中脱离,印证了独立存在的意义。
测试结果如下(static元素就不测试):
子元素 ( 相对于 =>) 父元素
absolute => static 绝对
fixed
=> static 绝对
relative => static 相对
absolute =>
absolute 相对
fixed => absolute 绝对
relative => absolute
相对
absolute => relative 相对
fixed => relative
绝对
relative => relative 相对
absolute => fixed
相对
fixed => fixed 绝对
relative => fixed 相对
<div
class="size300_300" style="position:static;
margin-left:100px;">
<div
class="size100_100" style="position:absolute; top:10px;
">son</div>
</div>