溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

CSS高度塌陷的方法有哪些

發(fā)布時間:2022-03-14 13:56:05 來源:億速云 閱讀:152 作者:iii 欄目:web開發(fā)

本文小編為大家詳細(xì)介紹“CSS高度塌陷的方法有哪些”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“CSS高度塌陷的方法有哪些”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識吧。

  高度塌陷的觸發(fā)條件:父元素沒有設(shè)置高度,且所有的子元素都浮動之后,因為子元素懸空不占位的,所以父元素的高度為0,會影響到后面的標(biāo)簽,也會影響頁面布局。

  1.父級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>

  原理:父級div手動定義height,就解決了父級div無法自動獲取到高度的問題。

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

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

  建議:不推薦使用,只建議高度固定的布局時使用

  2.結(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}

  /*清除浮動代碼*/

  .clearfloat{clear:both;height:0;overflow:hidden;}

  </style>

  <div class="div1">

  <div class="left">Left</div>

  <div class="right">Right</div>

  <div class="clearfloat"></div>

  </div>

  <div class="div2">

  div2

  </div>

  原理:添加一個空div,利用css提高的clear:both清除浮動,讓父級div能自動獲取到高度

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

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

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

  3.父級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}

  /*清除浮動代碼*/

  .clearfloat:after{display:block;clear:both;content:"";visibility:hidden;height:0;overflow:hidden;}

  .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浮動問題

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

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

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

  4.父級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,同時不能定義height,使用overflow:hidden時,瀏覽器會自動檢查浮動區(qū)域的高度

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

  缺點(diǎn):不能和position配合使用,因為超出的尺寸的會被隱藏。

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

  5.父級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,同時不能定義height,使用overflow:auto時,瀏覽器會自動檢查浮動區(qū)域的高度

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

  缺點(diǎn):內(nèi)部寬高超過父級div時,會出現(xiàn)滾動條。

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

  6.父級div 也一起浮動

  <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>

  原理:所有代碼一起浮動,就變成了一個整體

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

  缺點(diǎn):會產(chǎn)生新的浮動問題。

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

  7.父級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屬性變成表格

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

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

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

  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>

  </div>

  <div class="div2">

  div2

  </div>

  原理:父級div定義zoom:1來解決IE浮動問題,結(jié)尾處加 br標(biāo)簽 clear:both

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

讀到這里,這篇“CSS高度塌陷的方法有哪些”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點(diǎn)還需要大家自己動手實(shí)踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

css
AI