css运用中,对position属性的认识

时间:2021-04-24 16:17:16

position属性有:

static :  无特殊定位,对象遵循HTML定位规则 
absolute :  将对象从文档流中拖出,使用left,right,top,bottom等属性进行绝对定位。而其层叠通过z-index属性定义。此时对象不具有边距,但仍有补白和边框 
relative :  对象不可层叠,但将依据left,right,top,bottom等属性在正常文档流中偏移位置

flex:对于html来定位;

强调absolute:absolute是相对于自己最近的父元素来定位的,如果你不给#demo相对定位,那么#sub的绝对定位就是相对于body来定位的;

relative是相对于自己来定位的,例如:#demo{position:relative;top:-50px;},这时#demo会在相对于它原来的位置上移50px。

另:relative 不脱离文档流,absolute 脱离文档流。也就是说:relative 的元素尽管表面上看到它偏离了原来的位置,但它实际上在文档流中还是没变。absolute的元素不仅位置改变了,同时也脱离了文档流。(relative和absolute的另外一个很重要的区别就是当被定义成absolute的对象被移出了,那么他原来的位置也就不存在了, 
如果被定义成relative的对象被移出了 他原来的位置还在,别的元素就不能替代这个位置. )  简言之:absolute 会把元素彻底移出文本流   relative 占座儿

从应用的角度来说,relative常用于包含有absolute元素的容器元素上。 
absolute元素默认以body做为容器元素进行绝对定位。 
如果你想在页面一个特定区域进行绝对定位,就可以在absolute元素外包裹一层容器元素应用relative样式。