• Css(2)绝对定位、浮动、flex盒子、相对定位、之间的关系,持续更新


    0.父元素是绝对定位,子元素可以浮动
    <
    style> .Box{ position: absolute; height: 800px; width: 800px; top:20px; right: 10%; border: red 1px solid; } .box1{ width: 100px; height: 100px; border: 1px blue solid; float: right; position: relative; } </style> <body> <div class="Box"> <div class="box1"></div> </div> </body>

     2.父元素可以绝对定位,盒子flex模型一起用,子元素也可以用绝对定位

    <style>
      .Box{
        position: absolute;
        display: flex;
        height: 800px;
        width: 800px;
        top:20px;
        right: 10%;
        border: red 1px solid;
      }
      .box1{
        width: 100px;
        height: 100px;
        border: 1px blue solid;
        position: absolute;
        right: 10%;
      }
    </style>
    <body>
      <div class="Box">
        <div class="box1"></div>
      </div>
    </body>

      2.父元素绝对定位且是盒子flex模型,子元素浮动失去效果

    .Box{
        displayflex;
        positionabsolute;
        height800px;
        width800px;
        top:20px;
        right10%;
        borderred 1px solid;
      }
      .box1{
        width100px;
        height100px;
        border1px blue solid;
        floatright;
        right10%;
      }
    </style>
    <body>
      <div class="Box">
        <div class="box1"></div>
      </div>
    </body>

     4.父元素绝对定位,外边距可以用,子元素外边距也可以用(父元素绝对定位,里面的元素还是按正常文档流元素显示)

     .Box{
        positionabsolute;
        /* display: flex; */
        height800px;
        width800px;
        top:20px;
        right10%;
        borderred 1px solid;
        padding-top30px;
      }
      .box1{
        width100px;
        height100px;
        border1px blue solid;
        margin10px;
      }
      .box2{
        width100px;
        height100px;
        border1px rgb(4216563solid;
        margin10px;
      }

    5.父元素绝对定位且是flex模型,那么块级元素就有了浮动效果(所以此时float就没了它的意义,所以float不起效果):

    .Box{
        positionabsolute;
        displayflex;
        height800px;
        width800px;
        top:20px;
        right10%;
        borderred 1px solid;
        padding-top30px;
      }
      .box1{
        width100px;
        height100px;
        border1px blue solid;
        margin10px;
      }
      .box2{
        width100px;
        height100px;
        border1px rgb(4216563solid;
        margin10px;
      }

     6.父元素是绝对定位,且是盒子flex模型;那么子元素如果也是绝对定位,那么子元素将失去盒子模型的性质(即脱离文档流)

     第一次记录总结:

    1.绝对定位是会脱离文档流的,flex模型属于正常文档流;

    2.父元素是felx模型,那么子元素的float属性失效,因为flex模型本来就是用来浮动的,功能比float更强大,所以没有必要保留float属性;

    3.兄弟元素如果都是绝对定位,那么margin属性会失效

    4.父元素如果是flex模型,子元素是绝对定位,那么flex模型失效,因为flex属性是正常文档流的属性;

    再次总结:父元素如果是绝对定位,那么里面的元素还是按正常元素属性显示。flex模型里面的子元素无法用float属性,因为flex属性本来就有浮动。绝对定位和flex属性可以一起用,可以创建一个脱离文档流的flex模型。

     .Box{
        positionabsolute;
        displayflex;
        height800px;
        width800px;
        top:20px;
        right10%;
        borderred 1px solid;
        padding-top30px;
      }
      .box1{
        width100px;
        height100px;
        border1px blue solid;
        margin10px;
      }
      .box2{
        width100px;
        height100px;
        border1px rgb(4216563solid;
        floatright;
        right10%;
        margin10px;
      }
    </style>
    <body>
      <div class="Box">
        <div class="box1"></div>
        <div class="box2"></div>
      </div>
    </body>
    穷则独善其身,达则兼济天下……
  • 相关阅读:
    类的继承
    垃圾回收GC
    网络层
    数据链路层
    TCP/IP协议分层模型
    OSI参考模型
    浏览器访问一个域名的过程
    Thread&ThreadLocal
    设计模式---单例模式
    内存泄漏和内存溢出
  • 原文地址:https://www.cnblogs.com/hmy-666/p/14462795.html
Copyright © 2020-2023  润新知