zoukankan      html  css  js  c++  java
  • css之定位 position

    什么是定位?!定位是一种更加高级的布局手段,通过定位可以将元素摆放到页面的任意位置。

    position 属性设置

    可选值:

    • static 默认值,元素是静止的没有开启定位
    • relative 开启元素的相对定位
    • absolute 开启元素的绝对定位
    • fixed 开启元素的固定定位
    • sticky 开启元素的粘滞定位

    **1、相对定位:**

    特点:

    1. 元素开启定位后不设置偏移量不会发生任何变化。
    2. 是相对于元素在文档流中的位置进行定位的。
    3. 可以提升层级,也就是可以盖住别的元素。
    4. 不会脱离文档流,也就相当于灵魂出窍,肉身还在。
    5. 不会改变元素的性质,块还是块,行内还是行内。

    偏移量:

    • top 定位元素和定位位置上边的距离
    • bottom 定位元素和定位位置下边的距离
    • left 定位元素和定位位置左边的距离
    • right 定位元素和定位位置右边的距离

    **2、绝对定位:**

    特点:

    1. 不设置偏移量位置还是不变。
    2. 但是,开启绝对定位后元素脱离文档流。(脱离文档流有什么特点,写在了浮动那一块了,总的来说就是不再区分块和行,宽高被内容撑开)
    3. 元素会提升一个层级。
    4. 相对于包含块定位。(绝对定位的包含块是离他最近的开启了定位的祖先元素,但要是祖先元素都没开启定位,则根元素html是它的包含块)

    **3、固定定位:**

    固定定位也是一种绝对定位,所以固定定位的大部分特点和绝对定位一样,唯一不同的是固定定位永远是相对于浏览器视口进行定位的。(固定定位的元素不会随网页的滚动条滚动,可恶的广告就是这么来的,死死卡住一个位置)


    **4、粘滞定位**

    粘滞定位和相对定位的特点基本一致,不同的是粘滞定位可以在元素到达某个位置时将其固定。


    补充:

    1、绝对定位元素的位置

    水平方向有过度约束:

    • left + margin-left + border-left + padding-left + width + padding-right + border-right + margin-right + right = 包含块的内容区的宽度
    • 如果9个值中没有 auto 则自动调整 right 值以使等式满足,如果有 auto,则自动调整 auto 的值以使等式满足。

    垂直方向有过度约束:

    • top + margin-top + border-top + padding-top + height + padding-bottom + border-bottom + margin-bottom + bottom = 包含块的内容区的高度

    • 如果9个值中没有 auto 则自动调整 bottom 值以使等式满足,如果有 auto,则自动调整 auto 的值以使等式满足。

    2、元素的层级(z-index)

    1. 对于开启了定位的元素,可以通过 z-index 属性来指定元素的层级,z-index 需要一个整数作为参数,值越大元素的层级越高,越优先显示。

    2. 层级一样,则优先显示靠下的元素。

    3. 祖先元素层级再高,也不会盖住后代元素。

      .box{
      	Z-index: 3;
      }
      
  • 相关阅读:
    Centos设置开机启动Apache和Mysql[总结]
    主机无法访问虚拟机的apache解决办法
    PHP使用DOM XML操作XML[总结]
    Linux下C结构体初始化[总结]
    libxml2的安装及使用[总结]
    Linux动态链接库的使用
    linux获取系统启动时间
    解析oui.txt文件,通过MAC前缀获取Organization
    linux命令学习——cat
    linux内核数据结构之kfifo
  • 原文地址:https://www.cnblogs.com/xiaoran991/p/12456306.html
Copyright © 2011-2022 走看看