兩欄布局兩個(gè)經(jīng)典的bugBFC/浮動(dòng)流

兩藍(lán)布局

.right{
    position: absolute;
    right: 0;
    background-color: aqua;
    width: 100px;
    height: 100px;
    opacity: 0.5;
}
.left{
    margin-right: 100px;
    height: 100px;
    background-color: brown;
}

垂直方向的margin父子粘合在一起,取最大值
margin塌陷
改變大盒子渲染規(guī)則

.wrapper{
    margin-left: 100px;
    margin-top: 100px;
    width: 100px;
    height: 100px;
    background-color: aquamarine;
}
.content{
    margin-top: 150px;
    margin-left: 50px;
    width: 50px;
    height: 50px;
    background-color: brown;
}

解決

<!-- bfc -->
    <!-- block format context -->
    <!-- 如何出發(fā)盒子的bfc 
    1,position:absolute
    2,display:inline-block
    3,float:left/right
    4,overflow:hidden溢出部分隱藏-->
.wrapper{
    margin-left: 100px;
    margin-top: 100px;
    width: 100px;
    height: 100px;
    background-color: aquamarine;
    /* overflow: hidden; */
    display: inline-block;
    position: absolute;
}
.content{
    margin-top: 60px; 
    margin-left: 50px;
    width: 50px;
    height: 50px;
    background-color: brown;
}

兄弟之間也會(huì)出現(xiàn)按

    <div class="wrapper"></div>
    <div class="content"></div>

css

.wrapper{
    width: 100px;
    height: 100px;
    margin-bottom: 200px;
    background-color: aquamarine;
}
.content{
    margin-top: 200px; 
    width: 100px;
    height: 100px;
    background-color: brown;
}

上下距離只會(huì)200px,或選取最大,不會(huì)累加
解決
寫一個(gè)下面的包含他的父類設(shè)置成overflow: hidden;

<div class="wrapper"></div>
    <div class="dasf">
    <div class="content"></div>
    </div>
.wrapper{
    width: 100px;
    height: 100px;
    margin-bottom: 200px;
    background-color: aquamarine;
}

.dasf{
    overflow: hidden;
}
.content{
    margin-top: 200px; 
    width: 100px;
    height: 100px;
    background-color: brown;
}

不能因?yàn)楦腂UG而加結(jié)構(gòu)(上面感覺白寫了)
真正的解決方法通過數(shù)學(xué)計(jì)算求他倆的總距離

浮動(dòng)元素float: right;和left后面有位置就去占一個(gè)

1,浮動(dòng)元素產(chǎn)生了浮動(dòng)流,所有產(chǎn)生了浮動(dòng)元素,塊級(jí)元素看不到他們,產(chǎn)生了bfc的元素和文本類元素(inline)以及文本都能看到浮動(dòng)元素
clear: both;清除流
如果想讓父級(jí)元素包住自己元素在最后一個(gè)子級(jí)加上clear:both;清除浮動(dòng),(不推薦用的方法:在浮動(dòng)流元素后面添加標(biāo)簽如:<p>標(biāo)簽的屬性加上清除就ok了)
推薦使用偽元素http://www.itdecent.cn/p/f8d531ab4b55
在父級(jí)元素的::after偽元素使用clear:both;
如果想要clear生效的話必須是塊級(jí)元素
那么after里面加上display block屬性就ok了
還有一種解決就是在父級(jí)元素上面添加浮動(dòng)元素的需求比如給他也添加浮動(dòng)元素,float ,inline 等
浮動(dòng)流都是位于他下面的元素

.mm{
    
    float: left;
    width: 100px;
    height: 100px;
    background-color: blue;
    opacity: 0.5;
}
.ww{
    display: inline-block;//刪除試試看
    width: 200px;
    height: 200px;
    background-color: aquamarine;
}

設(shè)置position:abolute; float:left/right會(huì)打內(nèi)部吧元素轉(zhuǎn)換成inline-block
浮動(dòng)可以做文字環(huán)繞圖片

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容