先说static,这个是默认值,就是按照正常的网页结构来排版,没啥特别的。
然后是absolute,这个就比较猛了,设置了之后元素就脱离文档流了,可以拿left、right、top、bottom这些属性来定位。它会一层层往上找,直到找到最近的那个有定位设置的父级元素,如果没找到,那就以body为基准。叠放顺序可以用z-index来调整,不过要注意的是,用了absolute之后margin就失效了,padding和border还能用。
接下来是fixed,这个其实跟absolute差不多,但有一些规范上的不同,不过早期浏览器像IE啥的不怎么支持,现在基本都支持了。
最后是relative,这个比较特殊,它不会脱离文档流,但可以通过left、right、top、bottom来偏移自己的位置,而且不会影响其他元素的位置。不过这个属性有个特点,就是不能层叠,z-index对它没用。
总结想让一个元素绝对定位,除了要把position设成absolute之外,还得至少写一个left、right、top或bottom的值,不然它还是会按正常流程显示,不会动。
position这玩意儿在做网页布局的时候超级实用,特别是要做那种精确控制位置的效果时,必须得用上它。不过新手刚开始学的时候可能会有点懵,多练几次就顺手了~