中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

HTML浮動如何清除

發布時間:2022-04-18 16:00:00 來源:億速云 閱讀:179 作者:iii 欄目:開發技術

這篇文章主要講解了“HTML浮動如何清除”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“HTML浮動如何清除”吧!

一、理解清除浮動

1、為什么要清除浮動

我們前面說過,浮動本質是用來做一些文字混排效果的,但是被我們拿來做布局用,則會有很多的問題出現。

由于浮動元素不再占用原文檔流的位置,所以它會對后面的元素排版產生影響,為了解決這些問題,此時就需要在該元素中清除浮動。準確地說,并不是清除浮動,而是清除浮動后造成的影響

2、清除浮動本質

清除浮動的本質: 主要為了解決父級元素因為子級浮動引起內部高度為0 的問題。

我們來詳細解釋下這句話

再解釋下就是在標準流下面一個父p沒有設置高度屬性,那么它的高度就會被子元素的高度撐開。但是如果這個父p中的子元素是浮動的話,如果父p下面再有

一個兄弟p,那么這個兄弟p就會遮擋這個父元素。這個現象也叫浮動溢出。

示例

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Document</title>    <style>    .father {        height: 200px;        border: 1px solid red;        width: 300px    }    .big {        width: 100px;        height: 100px;        background-color: purple;        float: left;    }    .small {        width: 80px;        height: 80px;        background-color: blue;        float: left;    }    .footer {        width: 400px;        height: 100px;        background-color: pink;    }    </style></head><body>    <p class="father"> 父p        <p class="big">子p</p>        <p class="small">子p</p>    </p>    <p class="footer">兄弟p</p></body></html>

運行結果

很明顯這里,p1和p2已經上浮,而兄弟p就往上移動。這里因為父p有文字所以占了點高度,不然兄弟p會完全覆蓋父p。

當然我們可以通過設置父p的高度,來使它不被兄弟p所覆蓋。比如這里設置 height: 200px;

在刷新下頁面

當父p設置高度后,被覆蓋的問題卻是解決了,但在很多時候我們是不會去設置父p的高度,因為很多時候我們都不知道父p的高度要設置多少。

所以這個時候需要思考解決這個問題。

二、清除浮動的方法

清除浮動的方法本質: 就是把父盒子里浮動的盒子圈到里面,讓父盒子閉合出口和入口不讓他們出來影響其他元素。

在CSS中,clear屬性用于清除浮動。

基本語法格式

選擇器 {clear:屬性值;}

屬性值

1、額外標簽法

通過在浮動元素末尾添加一個空的標簽,例如

 <p style="clear:both"></p>

我們在上面的代碼添加

<body>    <p class="father"> 父p        <p class="big">子p</p>        <p class="small">子p</p>        <p style="clear:both"></p>  <!--  只需在父盒子里最后面添加這個空標簽添加clear:both屬性就可以清除浮動 -->    </p>    <p class="footer">兄弟p</p></body>

完美解決了。

優點 通俗易懂,書寫方便。

缺點 添加無意義的標簽,結構化較差。

2、父級添加overflow屬性方法

可以通過觸發BFC的方式,可以實現清除浮動效果。(BFC后面會講)

可以給父級元素添加: overflow為 hidden|auto|scroll  都可以實現。

我們將上面代碼修改為

<body>    <p class="father" style="overflow: hidden;"> 父p  <!-- 父元素添加 overflow: hidden -->         <p class="big">子p</p>        <p class="small">子p</p>    </p>    <p class="footer">兄弟p</p></body>

也是能實現去除浮動的效果。

優點 代碼簡潔

缺點 內容增多時候容易造成不會自動換行導致內容被隱藏掉,無法顯示需要溢出的元素。

3、使用after偽元素清除浮動

:after 方式為空元素的升級版,好處是不用單獨加標簽了**

示例

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>使用after偽元素清除浮動</title>    <style>    .clearfix:after {  /*正常瀏覽器 清除浮動*/        content:"";        display: block;        height: 0;        clear: both;        visibility: hidden;    }    .clearfix {        *zoom: 1;  /*zoom 1 就是ie6 清除浮動方式  *  ie7一下的版本所識別*/    }    .father {        border: 1px solid red;        width: 300px;    }    .big {        width: 100px;        height: 100px;        background-color: purple;        float: left;    }    .small {        width: 80px;        height: 80px;        background-color: blue;        float: left;    }    .footer {        width: 400px;        height: 100px;        background-color: pink;    }    </style></head><body>    <p class="father clearfix">        <p class="big"></p>        <p class="small"></p>    </p>    <p class="footer"></p></body></html>

優點 符合閉合浮動思想 結構語義化正確

缺點 由于IE6-7不支持:after,使用 zoom:1觸發 hasLayout。

注意: content:"." 里面盡量跟一個小點,或者其他,盡量不要為空,否則再firefox 7.0前的版本會有生成空格。

4、使用before和after雙偽元素清除浮動

使用方法 將上面的clearfix樣式替換成如下

    .clearfix:before, .clearfix:after {        content: "";        display: table;    }    .clearfix:after {        clear: both;    }    .clearfix {        *zoom: 1;    }

優點 代碼更簡潔

缺點 由于IE6-7不支持:after,使用 zoom:1觸發 hasLayout。

5、總結

1、在網頁主要布局時使用:after偽元素方法并作為主要清理浮動方式.文檔結構更加清晰;2、在小模塊如ul里推薦使用overflow:hidden;(同時留意可能產生的隱藏溢出元素問題);

感謝各位的閱讀,以上就是“HTML浮動如何清除”的內容了,經過本文的學習后,相信大家對HTML浮動如何清除這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

平定县| 嵊泗县| 漳浦县| 陈巴尔虎旗| 达孜县| 丰台区| 平安县| 雷山县| 南宁市| 抚顺市| 师宗县| 平原县| 乐都县| 商都县| 龙州县| 南投市| 浮梁县| 惠来县| 通州区| 沁水县| 金山区| 兴宁市| 修文县| 神木县| 马龙县| 贞丰县| 永修县| 兴城市| 磴口县| 南投市| 绿春县| 卢氏县| 讷河市| 澳门| 安宁市| 木里| 开阳县| 阿拉善右旗| 关岭| 临武县| 巴里|