溫馨提示×

溫馨提示×

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

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

CSS屬性display:flow-root聲明怎么用

發(fā)布時間:2021-03-19 09:35:56 來源:億速云 閱讀:392 作者:小新 欄目:web開發(fā)

小編給大家分享一下CSS屬性display:flow-root聲明怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

一、Safari瀏覽器支持了

display:flow-root 剛出來的時候,我一看兼容性,嘖嘖,不知道猴年馬月才能用在生產(chǎn)環(huán)境,今天又遇到這廝,一查兼容性,嘿,小子,不錯嘛,Safari瀏覽器從版本13開始支持了,距離流行使用指日可待。

CSS屬性display:flow-root聲明怎么用

二、display:flow-root干嘛用的?

元素,無論是內(nèi)聯(lián)元素,還是原本就是塊級元素,在應用 display:flow-root 聲明后,都會變成塊級元素,同時這個元素會建立新的塊級格式上下文,也就是業(yè)界常說的BFC。

關(guān)于BFC,可以參考我之前的這篇經(jīng)典文章:“ CSS深入理解流體特性和BFC特性下多欄自適應布局 ”。

BFC除了可以用來布局之外,還有清除浮動,以及去除margin合并現(xiàn)象的作用,因此, display:flow-root 也有類似的作用,相比float浮動,position絕對定位,或者overflow隱藏,inline-block等特性產(chǎn)生的塊級格式上下文, display:flow-root 不會給元素帶來額外的副作用,例如 overflow:hidden 雖然可以去除浮動的干擾,但是,有可能會讓子元素無法定位在容器外部。

使用 display:flow-root 就不會有這樣的擔憂。

例如下面這個例子,容器有輪廓,子元素浮動:

<p><img src="mm.jpg"></p>
p {
    outline: solid deepskyblue;    
}
img {
    float: left;
}

結(jié)果輪廓都合在一起了,如下圖所示:

CSS屬性display:flow-root聲明怎么用

此時,只要給 <p> 元素設(shè)置 display:flow-root ,浮動導致元素高度塌陷的問題就不存在了:

p {
    display: flow-root;
}

效果如下截圖所示:

CSS屬性display:flow-root聲明怎么用

類似的,margin屬性合并的現(xiàn)象也可以使用 display:flow-root 阻止。

HTML代碼如下:

<div class="box">
    <p>margin: 2em;</p>
</div>
<div class="box flow-root">
    <p>margin: 2em;</p>
</div>

CSS如下:

.box {
    background-color: #f0f3f9;    
}
.box p {
    outline: solid deepskyblue;
    margin: 2em;
}
.flow-root {
    display: flow-root;
}

結(jié)果上面的容器元素margin被穿過去了,而下面的容器元素,因為設(shè)置了 display:flow-root ,所以margin穿透被阻止了,于是,里面 <p> 元素占據(jù)的空間就顯得較大,如下圖所示:

CSS屬性display:flow-root聲明怎么用

以上兩個例子均有demo可以體驗,您可以狠狠地點擊這里: display:flowt-root作用示意demo

display:flow-root 還可以和浮動屬性配合,實現(xiàn)兩欄自適應的布局效果。

例如:

<div class="box flow-root">
    <img src="mm.jpg">
    <p class="flow-root">拼多多暴漲7%,市值突破700億美元,超越京東。而黃崢個人財富也處于內(nèi)地第三大富豪</p>
</div>
.box img {
    float: left;
    margin-right: 20px;
}
.box p {
    background-color: #f0f3f9;
    padding: 10px;
}
.flow-root {
    display: flow-root;
}

實時效果如下:

CSS屬性display:flow-root聲明怎么用

拼多多暴漲7%,市值突破700億美元,超越京東。而黃崢個人財富也處于內(nèi)地第三大富豪

三、結(jié)語

總結(jié)下本文要點

display:flow-root 可以讓元素塊狀化,同時包含格式化上下文BFC,可以用來清除浮動,去除 margin 合并,實現(xiàn)兩欄自適應布局等。

display:flow-roo t可以在部分項目中使用了。

display:flow

display 屬性還支持一個目前處于試驗形式的值,名為 flow ,表現(xiàn)為元素可能是內(nèi)聯(lián)框盒子,也可能是塊級框盒子。

究竟渲染成哪個盒子與外部元素的顯示類型相關(guān),

要么生成內(nèi)聯(lián)格式化上下文,要么生成塊級格式化上下文。如果元素外部顯示類型為inline或run-in,并且元素參與block或inline格式上下文中,則元素表現(xiàn)為inline框,否則表現(xiàn)為block容器框。

根據(jù)是否包含格式化上下文屬性(如 position 、 floatoverflow )以及元素本身是否參與塊或內(nèi)聯(lián)格式上下文, display:flow 元素要么為其內(nèi)容建立新的塊格式上下文(BFC),要么將其內(nèi)容集成到其父格式上下文中。

display:flow 目前兼容性不詳,估計目前沒幾個瀏覽器支持。

以上是“CSS屬性display:flow-root聲明怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

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

AI