web前端-css之position

93 阅读2分钟

position属性

static:默认值,静态定位(不定位)
relative:相对定位
absolute:绝对定位
fixed:固定定位

一个元素,只要position的取值不是static,那么该元素是一个定位元素
定位元素会脱离文档流(相对定位除外)

脱离了文档流的元素:

  1. 文档流的元素摆放时,会负略脱离了文档流的元素
  2. 文档流中的元素计算自动高度时,也会忽略脱离文档流的元素

相对定位

不会导致元素脱离文档流,只会让元素在原来的位置上进行偏移
可以有四个css属性对位置进行偏移:

  1. left
  2. right
  3. top
  4. bottom

相对定位的偏移不会对其他元素位置改变

其主要作用是为其他定位提供包含块

绝对定位

  1. 宽度为auto,适应内容
  2. 包含块的变化,先找祖先中第一个定位元素,该元素的填充盒为其包块 ,若找不到包含块,则整个网页为包含块(初始化包含块)

固定定位

  1. 其他情况和绝对定位完全一样
  2. 只有包含块不一样,为浏览器网页可是的窗口

定位下的居中

怎么在包含块中居中:

  1. 定宽、或是高
  2. 将左右(上下)距离设置为0
  3. 将左右(上下)margin设置为auto

在绝对和固定定位中,margin为auto时,会自动吸收剩余空间

对个定位元素重叠时

堆叠上下文
设置z-index,通常情况下,该值越大,就越靠近用户

补充

绝对定位、固定定位的元素一定是块盒,display会被强制改为block
决定定位、固定定位一定不是浮动,float会被强制改为none