美文网首页
css定位篇-position

css定位篇-position

作者: 护念 | 来源:发表于2018-06-17 11:54 被阅读0次

    html中position定位有:

    • static (默认的定位方式,文档流)
    • relative (相对定位)
    • absolute (绝对定位)
    • fixed (固定定位)
      这几种方式,下面分别看下

    relative 相对定位

    PS: 默认的定位方式就不做介绍了

    相对定位指:
    1 . 相对于文档流原本位置的偏移
    2 . 偏移后仍占据文档流(也就位置仍然会占有)

    <style>
      #relative {
        position: relative;
        padding: 10px;
        top: 20px;
        left: 50px;
        border: 5px solid green;
      }
    </style>
    
    <div>
        <p>相对定位的前一个内容</p>
        <span id="relative">我是相对定位, 本来 span 标签属于内联标签,默认应该和p标签同一行的</span>
      </div>
    
    image.png

    absolute 绝对定位

    绝对定位:
    1 .参照物是它的父元素中定了位的元素(position 等于 relative/absolute/fixed)
    2 . 绝对定位不占据文档空间(后来者会当它不存在)
    3 .在定了位的父元素容器中,它的默认位置仍是按文档流来的。

    父元素定位 VS 没定位区别

     #absolute {
        position: absolute; // 绝对定位
        padding: 10px;
        top: 30px;
        left: 50px;
        border: 5px solid red;
      }
    
    <body>
      <div>
        <p>相对定位的前一个内容</p>
        <p id="relative">我是相对定位, 本来默认应该紧紧挨在p下的</p>
      </div>
    
      <div>
        <p>绝对定位的前一个内容</p>
        <div id="absolute">
          绝对定位元素
        </div>
      </div>
    
    
    </body>
    
    image.png

    父元素定位-绝对定位不偏移(按文档流)

    #absolute-parent {
        position: relative; // 父元素定位
        top: 10px;
        border: 5px solid;
        width: 300px;
        height: 300px;
      }
    
      #absolute {
        position: absolute; // 绝对定位
        padding: 10px;
        border: 5px solid red;
      }
    
    <body>
      <div>
        <p>相对定位的前一个内容</p>
        <p id="relative">我是相对定位, 本来默认应该紧紧挨在p下的</p>
      </div>
    
      <div id="absolute-parent">
        <p>绝对定位的前一个内容</p>
        <div id="absolute">
          绝对定位元素
        </div>
      </div>
    
    </body>
    
    image.png

    父元素定位-偏移

    #absolute-parent {
        position: relative; // 父元素定位
        top: 10px;
        border: 5px solid;
        width: 300px;
        height: 300px;
      }
    
      #absolute {
        position: absolute; // 绝对定位
        padding: 10px;
        top: 30px;
        left: 50px;
        border: 5px solid red;
      }
    <body>
      <div>
        <p>相对定位的前一个内容</p>
        <p id="relative">我是相对定位, 本来默认应该紧紧挨在p下的</p>
      </div>
    
      <div id="absolute-parent">
        <p>绝对定位的前一个内容</p>
        <div id="absolute">
          绝对定位元素
        </div>
      </div>
    
    </body>
    
    
    image.png

    父元素定位-不占文档流

    <body>
      <div>
        <p>相对定位的前一个内容</p>
        <p id="relative">我是相对定位, 本来默认应该紧紧挨在p下的</p>
      </div>
    
      <div id="absolute-parent">
        <p>绝对定位的前一个内容</p>
        <div id="absolute">
          绝对定位元素
        </div>
        <p>我是绝对定位后的元素,我会与绝对定位内容重复,应为它不占文档流</p>
      </div>
    
      <div id="fixed">
        固定定位
      </div>
    
    </body>
    
    image.png

    fixed 固定定位

    固定定位
    1 .它的定位参照物是相对于视口(我们的设备、浏览器等)
    2 .缩放窗口过程中,始终保持定位

    #fixed {
        position: fixed;
        bottom: 0;
        left: 0;
        border: 5px solid red;
      }
    
    <div id="fixed">
        固定定位
      </div>
    
    image.png

    相关文章

      网友评论

          本文标题:css定位篇-position

          本文链接:https://www.haomeiwen.com/subject/dbzieftx.html