CSS清除浮動(dòng)大全共8種方法

  在各種瀏覽器兼容問題上艰躺,這樣讓清除浮動(dòng)更難了滑进,下面總結(jié)8種清除浮動(dòng)的方法:

浮動(dòng)導(dǎo)致的問題:父級標(biāo)簽高度塌陷---其實(shí)就是沒有高度

Snip20170615_11-1.png

下面八中方法:
<h4>1搬男、父級div定義 height</h4>

<pre>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>

    <style type="text/css">
        #box {
            width: 300px;
            /*解決問題*/
            height: 400px;
            background: bisque;
            border: 2px solid black;
        }
        
        #div1 {
            width: 100px;
            height: 200px;
            float: left;
            background: red;
        }
        #div2 {
            width: 100px;
            height: 200px;
            float: right;
            background: yellow;
        }
        
    </style>
</head>
<body>
    <div id="box">
        <div id="div1">
            1
        </div>
        <div id="div2">
            2
        </div>
        
        
    </div>
    
</body>

</html>

</pre>

原理:父級div手動(dòng)定義height经窖,就解決了父級div無法自動(dòng)獲取到高度的問題坡垫。

優(yōu)點(diǎn):簡單、代碼少画侣、容易掌握

缺點(diǎn):只適合高度固定的布局冰悠,要給出精確的高度,如果高度和父級div不一樣時(shí)配乱,會(huì)產(chǎn)生問題

建議:不推薦使用溉卓,只建議高度固定的布局時(shí)使用

<h4>2、結(jié)尾處加空div標(biāo)簽 clear:both </h4>

Snip20170615_12.png

<pre>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>

    <style type="text/css">
        #box {
            width: 300px;
            
            background: bisque;
            border: 2px solid black;
        }
        
        #div1 {
            width: 100px;
            height: 200px;
            float: left;
            background: red;
        }
        #div2 {
            width: 100px;
            height: 200px;
            float: right;
            background: yellow;
        }
        
        .clearflow {
            clear: both;
        }
        
    </style>
</head>
<body>
    <div id="box">
        <div id="div1">
            1
        </div>
        <div id="div2">
            2
        </div>
        
        <!--解決問題-->
        <div class="clearflow">
            
        </div>
        
    </div>
    
</body>

</html>
</pre>

原理:添加一個(gè)空div搬泥,利用css提高的clear:both清除浮動(dòng)桑寨,讓父級div能自動(dòng)獲取到高度

優(yōu)點(diǎn):簡單、代碼少忿檩、瀏覽器支持好尉尾、不容易出現(xiàn)怪問題

缺點(diǎn):不少初學(xué)者不理解原理;如果頁面浮動(dòng)布局多休溶,就要增加很多空div代赁,讓人感覺很不好

建議:不推薦使用,但此方法是以前主要使用的一種清除浮動(dòng)方法

<h4>3兽掰,父級div定義 偽類:after </h4>

Snip20170615_13.png

<pre>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>

    <style type="text/css">
        
        
        #div1 {
            width: 100px;
            height: 200px;
            float: left;
            background: red;
        }
        #div2 {
            width: 100px;
            height: 200px;
            float: right;
            background: yellow;
        }
        
        #box {
            width: 300px;
            
            background: bisque;
            border: 2px solid black;
            
        }
                    .clearfloat {zoom:1}
        .clearfloat:after {
            
            /* 這三句必須寫 */
            display:block;
            clear:both;
            /*必須有這樣寫*/
            content:"";
            
            
            /*  這兩句寫不寫無所謂*/
            /*visibility:hidden;*/
            /*height:0;*/
        }
        
    </style>
</head>
<body>
    <div id="box" class="clearfloat">
        <div id="div1">
            1
        </div>
        <div id="div2">
            2
        </div>

    </div>
    
</body>

</html>

</pre>

原理:IE8以上和非IE瀏覽器才支持:after芭碍,原理和方法2有點(diǎn)類似,zoom(IE專有屬性)可解決ie6,ie7浮動(dòng)問題 (其他瀏覽器不用)

優(yōu)點(diǎn):瀏覽器支持好孽尽、不容易出現(xiàn)怪問題(目前:大型網(wǎng)站都有使用窖壕,如:騰迅,網(wǎng)易杉女,新浪等等)

缺點(diǎn):代碼多瞻讽、不少初學(xué)者不理解原理,要兩句代碼結(jié)合使用才能讓主流瀏覽器都支持熏挎。

建議:推薦使用速勇,建議定義公共類,以減少CSS代碼坎拐。

<h4>4烦磁,父級div定義 overflow:hidden </h4>

Snip20170615_14.png

<pre>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>

    <style type="text/css">
        
        
        #div1 {
            width: 100px;
            height: 200px;
            float: left;
            background: red;
        }
        #div2 {
            width: 100px;
            height: 200px;
            float: right;
            background: yellow;
        }
        
        #box {
            width: 300px;
            
            background: bisque;
            border: 2px solid black;
            /*解決問題*/
            overflow: hidden;
        }
        
    </style>
</head>
<body>
    <div id="box" class="clearfloat">
        <div id="div1">
            1
        </div>
        <div id="div2">
            2
        </div>

    </div>
    
</body>

</html>

</pre>

原理:必須定義width或zoom:1养匈,同時(shí)不能定義height,使用overflow:hidden時(shí)都伪,瀏覽器會(huì)自動(dòng)檢查浮動(dòng)區(qū)域的高度

優(yōu)點(diǎn):簡單呕乎、代碼少、瀏覽器支持好

缺點(diǎn):不能和position配合使用陨晶,因?yàn)槌龅某叽绲臅?huì)被隱藏猬仁。

建議:只推薦沒有使用position或?qū)verflow:hidden理解比較深的朋友使用。

<h4>5先誉、父級div定義 overflow:auto </h4>

與方法4相同
這個(gè)不能用滾動(dòng)條湿刽,所以不推薦使用哦!

<h4>6褐耳、父級div 也一起浮動(dòng) </h4>
<pre>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>

    <style type="text/css">
        
        
        #div1 {
            width: 100px;
            height: 200px;
            float: left;
            background: red;
        }
        #div2 {
            width: 100px;
            height: 200px;
            float: right;
            background: yellow;
        }
        
        #box {
            width: 300px;
            
            background: bisque;
            border: 2px solid black;
            /*解決問題*/
            float: left;
        }
        
    </style>
</head>
<body>
    <div id="box" class="clearfloat">
        <div id="div1">
            1
        </div>
        <div id="div2">
            2
        </div>

    </div>
    
</body>

</html>

</pre>

原理:所有代碼一起浮動(dòng)叭爱,就變成了一個(gè)整體

優(yōu)點(diǎn):沒有優(yōu)點(diǎn)

缺點(diǎn):會(huì)產(chǎn)生新的浮動(dòng)問題。

建議:不推薦使用漱病,只作了解。

<h4>7把曼、父級div定義 display:table </h4>

原理:將div屬性變成表格

優(yōu)點(diǎn):沒有優(yōu)點(diǎn)

缺點(diǎn):會(huì)產(chǎn)生新的未知問題杨帽。

建議:不推薦使用,只作了解嗤军。

<h4>8注盈、結(jié)尾處加 br標(biāo)簽 clear:both </h4>

與第二種方法一樣,這里只要是塊元素都是可以的;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末叙赚,一起剝皮案震驚了整個(gè)濱河市老客,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌震叮,老刑警劉巖胧砰,帶你破解...
    沈念sama閱讀 212,542評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異苇瓣,居然都是意外死亡尉间,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,596評論 3 385
  • 文/潘曉璐 我一進(jìn)店門击罪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來哲嘲,“玉大人,你說我怎么就攤上這事媳禁∶吒保” “怎么了?”我有些...
    開封第一講書人閱讀 158,021評論 0 348
  • 文/不壞的土叔 我叫張陵竣稽,是天一觀的道長囱怕。 經(jīng)常有香客問我霍弹,道長,這世上最難降的妖魔是什么光涂? 我笑而不...
    開封第一講書人閱讀 56,682評論 1 284
  • 正文 為了忘掉前任庞萍,我火速辦了婚禮,結(jié)果婚禮上忘闻,老公的妹妹穿的比我還像新娘钝计。我一直安慰自己,他們只是感情好齐佳,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,792評論 6 386
  • 文/花漫 我一把揭開白布私恬。 她就那樣靜靜地躺著,像睡著了一般炼吴。 火紅的嫁衣襯著肌膚如雪本鸣。 梳的紋絲不亂的頭發(fā)上枢冤,一...
    開封第一講書人閱讀 49,985評論 1 291
  • 那天涩维,我揣著相機(jī)與錄音,去河邊找鬼命满。 笑死童芹,一個(gè)胖子當(dāng)著我的面吹牛涮瞻,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播假褪,決...
    沈念sama閱讀 39,107評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼署咽,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了生音?” 一聲冷哼從身側(cè)響起宁否,我...
    開封第一講書人閱讀 37,845評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎缀遍,沒想到半個(gè)月后慕匠,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,299評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡域醇,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,612評論 2 327
  • 正文 我和宋清朗相戀三年絮重,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片歹苦。...
    茶點(diǎn)故事閱讀 38,747評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡青伤,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出殴瘦,到底是詐尸還是另有隱情狠角,我是刑警寧澤,帶...
    沈念sama閱讀 34,441評論 4 333
  • 正文 年R本政府宣布蚪腋,位于F島的核電站丰歌,受9級特大地震影響姨蟋,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜立帖,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,072評論 3 317
  • 文/蒙蒙 一眼溶、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧晓勇,春花似錦堂飞、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,828評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至描融,卻和暖如春铝噩,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背窿克。 一陣腳步聲響...
    開封第一講書人閱讀 32,069評論 1 267
  • 我被黑心中介騙來泰國打工骏庸, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人年叮。 一個(gè)月前我還...
    沈念sama閱讀 46,545評論 2 362
  • 正文 我出身青樓敞恋,卻偏偏與公主長得像,于是被迫代替她去往敵國和親谋右。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,658評論 2 350

推薦閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案补箍? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,737評論 1 92
  • 清除浮動(dòng)是每一個(gè) web前臺(tái)設(shè)計(jì)師必須掌握的機(jī)能改执。css清除浮動(dòng)大全,共8種方法坑雅。 浮動(dòng)會(huì)使當(dāng)前標(biāo)簽產(chǎn)生向上浮的效...
    DanD丶榆木稚年閱讀 585評論 0 4
  • 浮動(dòng)會(huì)使當(dāng)前標(biāo)簽產(chǎn)生向上浮的效果辈挂,同時(shí)會(huì)影響到前后標(biāo)簽、父級標(biāo)簽的位置及 width height 屬性裹粤。而且同樣...
    瓦是香蕉妹閱讀 214評論 0 0
  • 1终蒂、父級div定義 height 原理:父級div手動(dòng)定義height,就解決了父級div無法自動(dòng)獲取到高度的問題...
    百度怎么用閱讀 110評論 0 0
  • 第一幕(殿內(nèi)) 董卓(旁白):仲穎生于涼州,生時(shí)天降祥瑞...
    慎思篤行月閱讀 792評論 0 3