1.static(静态定位):默认值。没有定位,元素出现在正常的流中(忽略 top,bottom,left,right或者z-index的声明);
2.relative(相对定位):生成相对定位的元素,通过top,bottom,left,right的设置相对于其正常(原先本身)的位置进行定位,可通过z-index进行层次分级。
3.absolute(绝对定位):生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。元素的位置通过left,top,bottom.right属性进行规定,可通过z-index进行定位。
4.fixed(固定定位):生成绝对定位的元素,相对于浏览器窗口进行定位。元素的位置通过left,top,right,以及bottom属性进行定位,可通过z-index进行定位。
平时应用较多的为relative和absolute,
1.relative:定位为relative的元素脱离正常的文本流,但是其在文本流中的位置依然存在。
它默认是以父的原始点位原始点,无父级则以文本流的顺序在上一个元素的底部为原始点,配合top,bottom, static,right对元素进行定位,当父级元素有padding属性时,当前级的原始点会参照父级内容区的原始点进行定位。
综上所述:我们可以将positive为relative的DIV视作可以使用top,bottom, static,right进行定位的普通DIV。但定位为absolute的元素不可以用来布局页面 ,因为如果用来布局布局的话,所有的DIV都相对于浏览器的左上角定位了,所以只能将定位为absolute的元素使用在某个元素的内部。
2.absolute:定位为absolute的元素脱离正常的文本流,但与relative的区别是其在正常流中的位置不再存在。
若想把一个定位属性为absolute的元素定位于其父级元素内,且父级元素内的padding对其不受影响,只有满足两个条件:
(1)设定top,bottom, static,right
(2)父级设定Position属性