欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

CSS清除浮動(dòng)的常用方法優(yōu)缺點(diǎn)分析

  發(fā)布時(shí)間:2016-04-25 12:14:22   作者:佚名   我要評(píng)論
這篇文章主要為大家詳細(xì)介紹了CSS清除浮動(dòng)的常用方法優(yōu)缺點(diǎn),分析很全面,感興趣的小伙伴們可以參考一下

一、拋一塊問題磚(display: block)先看現(xiàn)象:

分析HTML代碼結(jié)構(gòu):

XML/HTML Code復(fù)制內(nèi)容到剪貼板
  1. <span style="font-size: 15px;"><div class="outer">  
  2.     <div class="div1">1</div>  
  3.     <div class="div2">2</div>  
  4.     <div class="div3">3</div>  
  5. </div>  
  6. </span>    

分析CSS代碼樣式:

CSS Code復(fù)制內(nèi)容到剪貼板
  1. .outer{border1px solid #ccc;background#fc9;color#fffmargin50px auto;padding50px;}   
  2. .div1{width80px;height80px;backgroundred;floatleft;}   
  3. .div2{width80px;height80px;backgroundblue;floatleft;}   
  4. .div3{width80px;height80px;background: sienna;floatleft;}   
  5.   

這里沒有給最外層的DIV.outer 設(shè)置高度,但是我們知道如果它里面的元素不浮動(dòng)的話,那么這個(gè)外層的高是會(huì)自動(dòng)被撐開的。但是當(dāng)內(nèi)層元素浮動(dòng)后,就出現(xiàn)了一下影響:

    (1):背景不能顯示 (2):邊框不能撐開 (3):margin 設(shè)置值不能正確顯示
當(dāng)一個(gè)內(nèi)層元素是浮動(dòng)的時(shí)候,如果沒有關(guān)閉浮動(dòng)時(shí),其父元素也就不會(huì)再包含這個(gè)浮動(dòng)的內(nèi)層元素,因?yàn)榇藭r(shí)浮動(dòng)元素已經(jīng)脫離了文檔流。也就是為什么外層不能被撐開了!

解決辦法如下(使用其他代碼示例):

1、父級(jí)div定義偽類:after和zoom

CSS Code復(fù)制內(nèi)容到剪貼板
  1. <style type="text/css">    
  2.    .div1{background:#000080;border:1px solid red;}   
  3.    .div2{background:#800080;border:1px solid red;height:100px;margin-top:10px}   
  4.       
  5.    .left{float:left;width:20%;height:200px;background:#DDD}   
  6.    .rightright{float:rightright;width:30%;height:80px;background:#DDD}   
  7.       
  8.    /*清除浮動(dòng)代碼*/  
  9.    .clearfloat:after{display:block;clear:both;content:"";visibility:hidden;height:0}   
  10.    .clearfloat{zoom:1}   
  11.    </style>    
  12. <div class="div1 clearfloat">    
  13. <div class="left">Left</div>    
  14. <div class="right">Right</div>    
  15. </div>   
  16. <div class="div2">   
  17.    div2   
  18.    </div>  

原理:IE8以上和非IE瀏覽器才支持:after,zoom(IE轉(zhuǎn)有屬性)可解決ie6,ie7浮動(dòng)問題。其中clear:both;指清除所有浮動(dòng);content: '.'; display:block;對(duì)于FF/chrome/opera/IE8不能缺少,其中content()可以取值也可以為空。visibility:hidden;的作用是允許瀏覽器渲染它,但是不顯示出來,這樣才能實(shí)現(xiàn)清楚浮動(dòng)。
優(yōu)點(diǎn):瀏覽器支持好,不容易出現(xiàn)怪問題(目前:大型網(wǎng)站都有使用,如:騰迅,網(wǎng)易,新浪等等)
缺點(diǎn):代碼多,不少初學(xué)者不理解原理,要兩句代碼結(jié)合使用,才能讓主流瀏覽器都支持
建議:推薦使用,建議定義公共類,以減少CSS代碼。(相對(duì)于空標(biāo)簽閉合浮動(dòng)的方法代碼似乎還是有些冗余,通過查詢發(fā)現(xiàn)Unicode字符里有一個(gè)“零寬度空格”,也就是U+200B,這個(gè)字符本身是不可見的,所以我們可以考慮省略掉 visibility:hidden )      
評(píng)分:★★★★☆

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

CSS Code復(fù)制內(nèi)容到剪貼板
  1. <style type="text/css">    
  2.    .div1{background:#000080;border:1px solid red}   
  3.    .div2{background:#800080;border:1px solid red;height:100px;margin-top:10px}   
  4.       
  5.    .left{float:left;width:20%;height:200px;background:#DDD}   
  6.    .rightright{float:rightright;width:30%;height:80px;background:#DDD}   
  7.       
  8.    /*清除浮動(dòng)代碼*/  
  9.    .clearfloat{clear:both}   
  10.    </style>    
  11. <div class="div1">    
  12. <div class="left">Left</div>    
  13. <div class="right">Right</div>   
  14. <div class="clearfloat"></div>   
  15. </div>   
  16. <div class="div2">   
  17.    div2   
  18.    </div>   

原理:添加一個(gè)空div,利用css提高的clear:both清除浮動(dòng),讓父級(jí)div能自動(dòng)獲取到高度
優(yōu)點(diǎn):簡(jiǎn)單,代碼少,瀏覽器支持好,不容易出現(xiàn)怪問題
缺點(diǎn):不少初學(xué)者不理解原理;如果頁面浮動(dòng)布局多,就要增加很多空div,讓人感覺很不爽
建議:不推薦使用,但此方法是以前主要使用的一種清除浮動(dòng)方法
評(píng)分:★★★☆☆ 

3、父級(jí)div定義overflow:hidden

CSS Code復(fù)制內(nèi)容到剪貼板
  1. <style type="text/css">    
  2.    .div1{background:#000080;border:1px solid red;/*解決代碼*/width:98%;overflow:hidden}   
  3.    .div2{background:#800080;border:1px solid red;height:100px;margin-top:10px;width:98%}   
  4.       
  5.    .left{float:left;width:20%;height:200px;background:#DDD}   
  6.    .rightright{float:rightright;width:30%;height:80px;background:#DDD}   
  7.    </style>    
  8. <div class="div1">    
  9. <div class="left">Left</div>    
  10. <div class="right">Right</div>   
  11. </div>   
  12. <div class="div2">   
  13.    div2   
  14.    </div>   

原理:必須定義width或zoom:1,同時(shí)不能定義height,使用overflow:hidden時(shí),瀏覽器會(huì)自動(dòng)檢查浮動(dòng)區(qū)域的高度
優(yōu)點(diǎn):簡(jiǎn)單,代碼少,瀏覽器支持好
缺點(diǎn):不能和position配合使用,因?yàn)槌龅某叽绲臅?huì)被隱藏,無法顯示需要溢出的元素
建議:只推薦沒有使用position或?qū)verflow:hidden理解比較深的朋友使用
評(píng)分:★★★☆☆

4、父級(jí)div定義overflow:auto

CSS Code復(fù)制內(nèi)容到剪貼板
  1. <style type="text/css">    
  2.    .div1{background:#000080;border:1px solid red;/*解決代碼*/width:98%;overflow:auto}   
  3.    .div2{background:#800080;border:1px solid red;height:100px;margin-top:10px;width:98%}   
  4.       
  5.    .left{float:left;width:20%;height:200px;background:#DDD}   
  6.    .rightright{float:rightright;width:30%;height:80px;background:#DDD}   
  7.    </style>    
  8. <div class="div1">    
  9. <div class="left">Left</div>    
  10. <div class="right">Right</div>   
  11. </div>   
  12. <div class="div2">   
  13.    div2   
  14.    </div>   

原理:必須定義width或zoom:1,同時(shí)不能定義height,使用overflow:auto時(shí),瀏覽器會(huì)自動(dòng)檢查浮動(dòng)區(qū)域的高度
優(yōu)點(diǎn):簡(jiǎn)單,代碼少,瀏覽器支持好
缺點(diǎn):內(nèi)部寬高超過父級(jí)div時(shí),會(huì)出現(xiàn)滾動(dòng)條。
建議:不推薦使用,如果你需要出現(xiàn)滾動(dòng)條或者確保你的代碼不會(huì)出現(xiàn)滾動(dòng)條就使用吧。
評(píng)分:★★☆☆☆

5、父級(jí)div定義height

CSS Code復(fù)制內(nèi)容到剪貼板
  1. <style type="text/css">    
  2.    .div1{background:#000080;border:1px solid red;/*解決代碼*/height:200px;}   
  3.    .div2{background:#800080;border:1px solid red;height:100px;margin-top:10px}   
  4.       
  5.    .left{float:left;width:20%;height:200px;background:#DDD}   
  6.    .rightright{float:rightright;width:30%;height:80px;background:#DDD}   
  7.    </style>    
  8. <div class="div1">    
  9. <div class="left">Left</div>    
  10. <div class="right">Right</div>    
  11. </div>   
  12. <div class="div2">   
  13.    div2   
  14.    </div>   

原理:父級(jí)div手動(dòng)定義height,就解決了父級(jí)div無法自動(dòng)獲取到高度的問題
優(yōu)點(diǎn):代碼簡(jiǎn)潔
缺點(diǎn):高度被固定死了,只適合高度固定的布局,要給出精確的高度,如果高度和父級(jí)div不一樣時(shí),會(huì)產(chǎn)生問題
建議:不推薦使用,只建議高度固定的布局時(shí)使用
評(píng)分:★★☆☆☆

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助。

相關(guān)文章

  • CSS清除浮動(dòng)方法大全(小結(jié))

    這篇文章主要介紹了CSS清除浮動(dòng)方法大全(小結(jié))的相關(guān)資料,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-07-19
  • CSS3 清除浮動(dòng)的方法示例

    這篇文章主要介紹了CSS3 清除浮動(dòng)的方法示例的相關(guān)資料,通過本文,讓大家可以明白清除浮動(dòng)的原理和幾種方法,最后得出一種本文認(rèn)為最好用的方法,感興趣的小伙伴們可以參考
    2018-06-01
  • CSS清除浮動(dòng)float的三種方法小結(jié)

    使元素脫離文檔流,按照指定方向發(fā)生移動(dòng),遇到父級(jí)邊界或者相鄰的浮動(dòng)元素停了下來。本文給大家?guī)砹薈SS清除浮動(dòng)float的三種方法小結(jié),感興趣的朋友跟隨腳本之家小編一起
    2018-03-13
  • 清除css浮動(dòng)的三種方法小結(jié)

    這篇文章主要介紹了清除css浮動(dòng)的三種方法小結(jié),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-01-19
  • 詳解css清除浮動(dòng)float的七種常用方法總結(jié)和兼容性處理

    這篇文章主要介紹了詳解css清除浮動(dòng)float的七種常用方法總結(jié)和兼容性處理,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2017-09-11
  • 淺談css中浮動(dòng)和清除浮動(dòng)帶來的影響

    這篇文章主要介紹了淺談css中浮動(dòng)和清除浮動(dòng)帶來的影響,通過代碼示例和圖片展示詳細(xì)介紹講解了浮動(dòng)的應(yīng)用和實(shí)現(xiàn)效果,需要的朋友可以參考下
    2017-08-14
  • CSS清除浮動(dòng)方法小結(jié)

    本文主要介紹了CSS解決浮動(dòng),清除浮動(dòng)的幾種方法:1、設(shè)置父元素高度;2、overflow;3、增加子元素(塊級(jí)),并且設(shè)置其clear屬性值為both來解決(隔墻法、內(nèi)墻法);4、使
    2017-03-22
  • 淺談css清除浮動(dòng)(clearfix和clear)的用法

    下面小編就為大家?guī)硪黄獪\談css清除浮動(dòng)(clearfix 和clear)的用法,小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考,一起跟隨小編過來看看吧
    2023-05-12
  • 淺談CSS中的clear清除浮動(dòng)

    下面小編就為大家?guī)硪黄獪\談CSS中的clear清除浮動(dòng)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-06-06
  • CSS清除浮動(dòng)的方法詳解

    這篇文章主要介紹了CSS清除浮動(dòng)的方法詳解,值得注意的是并不是每次單純把浮動(dòng)清除掉就可以解決相關(guān)問題,文中最后談到的閉合浮動(dòng)的方案也非常值得一試,需要的朋友可以參考下
    2016-05-30

最新評(píng)論