22-定位

73 阅读2分钟

定位

  • 静态定位

    • 概念:当元素没有设置定位属性时,默认为静态定位

      position: static;
      
  • 固定定位

    • 概念:把元素固定在页面中,不会随着滚动条而滚动

      position: fixed;
      
    • 特点:

      • 固定定位元素会脱离文档流,显示在标准文档流之上
      • 在当前位置脱离文档流,偏移量设置之后,会参考页面视口区域进行偏移(页面窗口的显示区域)
    • 偏移量:

      • top:距离参考位置上边缘的距离
      • bottom:距离参考位置下边缘的距离
      • left:距离参考位置左边缘的距离
      • right:距离参考位置右边缘的距离
  • 相对定位:

    • 概念:让页面元素相对原本位置进行移动

      position: relative;
      
    • 特点:

      • 只设置相对定位,页面没有任何特殊效果
      • 可以设置偏移量,会参考元素原本的位置进行偏移
      • 元素不会脱离文档流,元素会显示在其他标准文档流元素之上
      • 一般会配合绝对定位一起使用,通称为子绝父相
    • 偏移量:

      • top:距离参考位置上边缘的距离
      • bottom:距离参考位置下边缘的距离
      • left:距离参考位置左边缘的距离
      • right:距离参考位置右边缘的距离
    • 注意:父元素移动之后,设置了相对定位的子元素也会一起移动

  • 绝对定位:

    • 概念:让页面元素参考定位父级移动

      position: absolute;
      
    • 特点:

      • 绝对定位元素会脱离文档流,显示在标签文档流之上
      • 在当前位置脱离文档流,可以设置偏移量,默认参考视口区域进行偏移;如果有定位父级,那么参考最近的定位父级进行偏移
      • 元素原本的位置不再占用
    • 偏移量:

      • top:距离参考位置上边缘的距离
      • bottom:距离参考位置下边缘的距离
      • left:距离参考位置左边缘的距离
      • right:距离参考位置右边缘的距离

层级

  • 定位显示在非定位元素之上,后面定位元素显示在前面定位元素之上

    z-index:数字;
    
    • 默认为0,数字越大表示层级越高,显示在其他元素之上
    • 可以设置为负值,元素会显示在标准文档流之下
    • 只能设置给定位元素,静态定位元素不能设置层级