国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

18143453325 在線咨詢 在線咨詢
18143453325 在線咨詢
所在位置: 首頁(yè) > 營(yíng)銷資訊 > 網(wǎng)絡(luò)營(yíng)銷 > 清除CSS浮動(dòng)的方法原理及優(yōu)缺點(diǎn)評(píng)定

清除CSS浮動(dòng)的方法原理及優(yōu)缺點(diǎn)評(píng)定

時(shí)間:2022-05-29 16:51:01 | 來(lái)源:網(wǎng)絡(luò)營(yíng)銷

時(shí)間:2022-05-29 16:51:01 來(lái)源:網(wǎng)絡(luò)營(yíng)銷

今天看到有個(gè)博友問(wèn)如何清除網(wǎng)站頁(yè)面的CSS浮動(dòng)?因?yàn)楦?dòng)會(huì)使當(dāng)前標(biāo)簽產(chǎn)生向上浮的效果,同時(shí)會(huì)影響到前后標(biāo)簽、父級(jí)標(biāo)簽的位置及width height屬性。而且同樣的代碼,在各種瀏覽器中顯示效果也有可能不相同,這樣讓清除浮動(dòng)更難了。

其實(shí)解決浮動(dòng)引起的問(wèn)題有多種方法,但有些方法在瀏覽器兼容性方面還有問(wèn)題。在此我根據(jù)自己多年做網(wǎng)站的經(jīng)驗(yàn)總結(jié)8種清除浮動(dòng)的方法在億企邦上跟大家分享一下:

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

<style type="text/css">
  .div1{background:#000080;border:1px solid red;}
  .div2{background:#800080;border:1px solid red;height:100px;margin-top:10px}
  .left{float:left;width:20%;height:200px;background:#DDD}
  .right{float:right;width:30%;height:80px;background:#DDD}
  /*清除浮動(dòng)代碼*/
  .clearfloat:after{display:block;clear:both;content:"";visibility:hidden;height:0}
  .clearfloat{zoom:1}
  </style>
  <div class="div1 clearfloat">
  <div class="left">Left</div>
  <div class="right">Right</div>
  </div>
  <div class="div2">
  div2
  </div>

原理:IE8以上和非IE瀏覽器才支持:after,原理和方法2有點(diǎn)類似,zoom(IE轉(zhuǎn)有屬性)可解決ie6,ie7浮動(dòng)問(wèn)題。

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

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

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

評(píng)分:★★★★☆

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

<style type="text/css">
  .div1{background:#000080;border:1px solid red;/*解決代碼*/width:98%;overflow:hidden}
  .div2{background:#800080;border:1px solid red;height:100px;margin-top:10px;width:98%}
  .left{float:left;width:20%;height:200px;background:#DDD}
  .right{float:right;width:30%;height:80px;background:#DDD}
  </style>
  <div class="div1">
  <div class="left">Left</div>
  <div class="right">Right</div>
  </div>
  <div class="div2">
  div2
  </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ì)被隱藏。

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

評(píng)分:★★★☆☆

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

<style type="text/css">
  .div1{background:#000080;border:1px solid red}
  .div2{background:#800080;border:1px solid red;height:100px;margin-top:10px}
  .left{float:left;width:20%;height:200px;background:#DDD}
  .right{float:right;width:30%;height:80px;background:#DDD}
  /*清除浮動(dòng)代碼*/
  .clearfloat{clear:both}
  </style>
  <div class="div1">
  <div class="left">Left</div>
  <div class="right">Right</div>
  <div class="clearfloat"></div>
  </div>
  <div class="div2">
  div2
  </div>

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

優(yōu)點(diǎn):簡(jiǎn)單,代碼少,瀏覽器支持好,不容易出現(xiàn)怪問(wèn)題。

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

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

評(píng)分:★★★☆☆

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

<style type="text/css">
   .div1{background:#000080;border:1px solid red;/*解決代碼*/height:200px;}
   .div2{background:#800080;border:1px solid red;height:100px;margin-top:10px}
   .left{float:left;width:20%;height:200px;background:#DDD}
   .right{float:right;width:30%;height:80px;background:#DDD}
   </style>
  <div class="div1">
  <div class="left">Left</div>
  <div class="right">Right</div>
  </div>
  <div class="div2">
  div2
  </div>

原理:父級(jí)div手動(dòng)定義height,就解決了父級(jí)div無(wú)法自動(dòng)獲取到高度的問(wèn)題。

優(yōu)點(diǎn):簡(jiǎn)單,代碼少,容易掌握。

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

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

評(píng)分:★★☆☆☆

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

<style type="text/css">
   .div1{background:#000080;border:1px solid red;/*解決代碼*/width:98%;overflow:auto}
   .div2{background:#800080; border:1px solid red; height:100px; margin-top:10px; width:98%}
   .left{float:left;width:20%;height:200px;background:#DDD}
   .right{float:right;width:30%;height:80px;background:#DDD}
   </style>
  <div class="div1">
  <div class="left">Left</div>
  <div class="right">Right</div>
  </div>
  <div class="div2">
  div2
  </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)部寬高超過(guò)父級(jí)div時(shí),會(huì)出現(xiàn)滾動(dòng)條。

建議:不推薦使用,如果你需要出現(xiàn)滾動(dòng)條或者確保你的代碼不會(huì)出現(xiàn)滾動(dòng)條就使用吧。

評(píng)分:★★☆☆☆

6、父級(jí)div定義display:table

<style type="text/css">
  .div1{background:#000080; border:1px solid red; /*解決代碼*/ width:98%; display:table; margin-bottom:10px;}
  .div2{background:#800080;border:1px solid red;height:100px;width:98%;}
  .left{float:left;width:20%;height:200px;background:#DDD}
  .right{float:right;width:30%;height:80px;background:#DDD}
  </style>
  <div class="div1">
  <div class="left">Left</div>
  <div class="right">Right</div>
  </div>
  <div class="div2">
  div2
  </div>

原理:將div屬性變成表格。

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

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

評(píng)分:★☆☆☆☆

7、父級(jí)div也一起浮動(dòng)

<style type="text/css">
  .div1{background:#000080;border:1px solid red;/*解決代碼*/width:98%;margin-bottom:10px;float:left}
  .div2{background:#800080;border:1px solid red;height:100px;width:98%;/*解決代碼*/clear:both}
  .left{float:left;width:20%;height:200px;background:#DDD}
  .right{float:right;width:30%;height:80px;background:#DDD}
  </style>
  <div class="div1">
  <div class="left">Left</div>
  <div class="right">Right</div>
  </div>
  <div class="div2">
  div2
  </div>

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

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

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

評(píng)分:★☆☆☆☆

8、結(jié)尾處加br標(biāo)簽clear:both

<style type="text/css">
  .div1{background:#000080;border:1px solid red;margin-bottom:10px;zoom:1}
  .div2{background:#800080;border:1px solid red;height:100px}
  .left{float:left;width:20%;height:200px;background:#DDD}
  .right{float:right;width:30%;height:80px;background:#DDD}
  .clearfloat{clear:both}
  </style>
  <div class="div1">
  <div class="left">Left</div>
  <div class="right">Right</div>
  <br class="clearfloat" />
  </div>
  <div class="div2">
  div2
  </div>

原理:父級(jí)div定義zoom:1來(lái)解決IE浮動(dòng)問(wèn)題,結(jié)尾處加br標(biāo)簽clear:both。

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

評(píng)分:★☆☆☆☆

億企邦點(diǎn)評(píng):

對(duì)于以上清除CSS浮動(dòng)的8種方法,都已通過(guò)ie、chrome、firefox、opera的測(cè)試,不過(guò),對(duì)于后面的3種方法只做了解就可以了,不作為重要的方法。

關(guān)鍵詞:缺點(diǎn),原理,評(píng)定

74
73
25
news

版權(quán)所有? 億企邦 1997-2022 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點(diǎn)擊下載Chrome瀏覽器
關(guān)閉