浮動(dòng)定位BFC

浮動(dòng)元素的特征,對(duì)于父容器、其他浮動(dòng)元素、普通元素和文字分別都有什么影響?

  • 對(duì)于父容器
  • 浮動(dòng)元素會(huì)生成一個(gè)塊級(jí)框,而不論這個(gè)元素本身是什么,即使讓一個(gè)鏈接元素浮動(dòng),如果其本身是行內(nèi)元素,也會(huì)生成塊級(jí)框浮動(dòng)元素的左右邊界不能超過(guò)包含塊的邊界
  • 一個(gè)浮動(dòng)元素的頂端不能比其父元素的內(nèi)頂端更高。
  • 對(duì)于其它浮動(dòng)元素
  • 浮動(dòng)元素的外邊距不會(huì)合并
  • 一個(gè)浮動(dòng)元素的左(或右)邊界必須是原文檔中之前出現(xiàn)過(guò)的浮動(dòng)元素的右(或左)邊界,除非后出現(xiàn)的浮動(dòng)元素的頂端在先前出現(xiàn)的浮動(dòng)元素的底端。這樣有效的避免了浮動(dòng)元素之間的重疊
  • 浮動(dòng)元素的頂端不能比之前所有的浮動(dòng)元素或塊級(jí)元素的頂端更高
  • 對(duì)于普通元素和文字
  • 浮動(dòng)元素脫離文檔的普通流,文檔中普通流的元素便顯的就像浮動(dòng)元素不存在一樣
  • 浮動(dòng)元素會(huì)以某種方式從文檔流中刪除,不過(guò)依然會(huì)影響布局。
  • 如果源文檔中一個(gè)浮動(dòng)元素之前出現(xiàn)一個(gè)元素,浮動(dòng)元素的頂端不能比包含該元素所生成框的任何行框的頂端更高
  • 行內(nèi)框與一個(gè)元素重疊時(shí),其邊框、背景和內(nèi)容都在該浮動(dòng)元素“之上”顯示
  • 塊框與一個(gè)浮動(dòng)元素重疊時(shí),其邊框和背景在該浮動(dòng)元素“之下”顯示,而內(nèi)容則在浮動(dòng)元素“之上”顯示

清除浮動(dòng)的方法

解決浮動(dòng)父容器高度塌陷問(wèn)題

父容器高度塌陷
  • 在其父容器中最后添加一個(gè)空的div,并設(shè)置樣式clear:both。(缺點(diǎn)是添加了一個(gè)無(wú)意義的標(biāo)簽)
  • 使父容器形成BFC清除浮動(dòng)
  • 通用在其父容器上添加如下:


    圖片.png

幾種定位方式的實(shí)現(xiàn)方式,參考點(diǎn)及使用場(chǎng)景

定位機(jī)制有三種,分別是普通流(static、relative),浮動(dòng),絕對(duì)定位(absolute、fixed)。

  • inherit 規(guī)定從其父元素繼承position屬性的值
  • static 默認(rèn)值,沒(méi)有定位,元素出現(xiàn)在正常流中
  • absolute 生成絕對(duì)定位元素,相對(duì)于static定位以外的第一個(gè)祖先元素進(jìn)行定位,可設(shè)置上下左右屬性值。
  • relative 生成相對(duì)定位的元素,相對(duì)于元素本身正常位置進(jìn)行定位,可設(shè)置上下左右屬性值。
  • fixed 生成絕對(duì)定位的元素,相對(duì)于瀏覽器器窗口進(jìn)行定位,可設(shè)置上下左右屬性值。

z-index的作用及使用方法

改變?cè)叵嗷ジ采w的順序,應(yīng)用于定位元素,值越大覆蓋優(yōu)先級(jí)越大。

position:relative和負(fù)margin都可以使元素發(fā)生偏移?二者的區(qū)別

將元素定位設(shè)置為相對(duì)定位后,元素的偏移不會(huì)對(duì)其他元素造成影響,而使用margin進(jìn)行元素偏移時(shí)其他相鄰元素也會(huì)相應(yīng)發(fā)生偏移,這是我們所不希望的。

BFC是什么?如何生成BFC?BFC的作用?

BFC(block format content)是塊級(jí)格式上下文,存在IE低版本不兼容的問(wèn)題,生成BFC的條件有

  • float為left|right
  • overflow為 hidden|auto|scroll
  • display為 table-cell|inline-block|table-caption
  • position為 absolute|fixed
  • 作用有
  • BFC會(huì)阻止垂直外邊距的折疊
    只有同屬一個(gè)BFC時(shí),兩個(gè)元素才有可能發(fā)生垂直Margin的重疊
  • BFC不會(huì)重疊浮動(dòng)元素
  • BFC可以包含浮動(dòng)(利用此條特性來(lái)“清除浮動(dòng)”,也就是說(shuō)對(duì)父容器添加這些屬性形成BFC)

在什么場(chǎng)景下出現(xiàn)外邊距合并?如何合并?如何不讓相鄰元素外邊距合并?舉例父子外邊距合并

  • 出現(xiàn)外邊距合并的情境
    • 兩個(gè)元素上下排列,上面的元素有margin-bottom,下面的元素有margin-top
    • 父元素有margin-top/bottom同時(shí)子元素也有
    • 空元素同時(shí)有margin-top/bottom其上下margin會(huì)合并
  • 如何合并
  • 相鄰元素間上下外邊距取margin值大的那個(gè)
  • 父子元素外邊距合并會(huì)讓父元素對(duì)外展現(xiàn)出來(lái)的外邊距將直接變成這個(gè)父元素和其第一個(gè)子元素的margin-top的較大者。
  • 當(dāng)元素為空元素時(shí),元素的上下margin會(huì)合并,并且多個(gè)兄弟(父子)空元素的外邊距會(huì)合并成一個(gè),最終展現(xiàn)出來(lái)的外邊距會(huì)是多個(gè)外邊距中較大的那個(gè),如果當(dāng)中有負(fù)margin的存在時(shí),合并后的外邊距將是最大正邊距加上最小負(fù)邊距
  • 如何不讓相鄰元素外邊距合并
    設(shè)置浮動(dòng);
    設(shè)置為display:inline-block;
    使其父元素各形成BFC;
  • 舉例說(shuō)明父子外邊距合并
圖片.png
圖片.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • relative:生成相對(duì)定位的元素,通過(guò)top,bottom,left,right的位置相對(duì)于其正常位置進(jìn)行定位...
    zx9426閱讀 1,081評(píng)論 0 2
  • 1. 浮動(dòng)元素有什么特征?對(duì)父容器、其他浮動(dòng)元素、普通元素、文字分別有什么影響? 浮動(dòng)元素的特征:CSS設(shè)計(jì)flo...
    饑人谷_邵征鵬閱讀 659評(píng)論 0 0
  • 1.浮動(dòng)元素有什么特征?對(duì)父容器、其他浮動(dòng)元素、普通元素、文字分別有什么影響? 浮動(dòng)模型也是一種可視化格式模型,浮...
    FLYSASA閱讀 393評(píng)論 0 0
  • 浮動(dòng)元素有什么特征?對(duì)父容器、其他浮動(dòng)元素、普通元素、文字分別有什么影響? 浮動(dòng)模型也是一種可視化格式模型,浮動(dòng)的...
    Taaaaaaaurus閱讀 185評(píng)論 0 0
  • 1.浮動(dòng)元素有什么特征?對(duì)父容器、其他浮動(dòng)元素、普通元素、文字分別有什么影響? 浮動(dòng)元素不在文檔的普通流中,它可以...
    饑人谷_Young丶K閱讀 521評(píng)論 0 0

友情鏈接更多精彩內(nèi)容