浮動(dòng)定位BFC邊距合并

浮動(dòng)元素有什么特征跟畅?對(duì)父容器咽筋、其他浮動(dòng)元素、普通元素徊件、文字分別有什么影響?

特征

  1. 浮動(dòng)的元素生成新的BFC 脫離當(dāng)前文檔流奸攻。
  2. 浮動(dòng)的元素會(huì)向左/右偏移直到它的外邊緣碰到包含框或者另一個(gè)浮動(dòng)元素的框的邊緣。

對(duì)父容器的影響:由于不在同一個(gè)BFC中虱痕,浮動(dòng)元素?zé)o法撐開父元素睹耐,父元素也不能包裹住浮動(dòng)元素。
對(duì)其他浮動(dòng)元素的影響:如果包含塊太窄無(wú)法容納水平排列的全部浮動(dòng)元素部翘,那么其它浮動(dòng)元素會(huì)向下移動(dòng)硝训,直到有足夠的空間,而如果浮動(dòng)元素的高度不同新思,那么向下移動(dòng)的時(shí)候可能會(huì)被卡住窖梁。
例:


對(duì)普通元素的影響: 普通元素會(huì)無(wú)視浮動(dòng)元素的存在,占據(jù)浮動(dòng)元素的位置表牢,而浮動(dòng)元素則會(huì)遮蓋在普通元素的上面窄绒。
對(duì)文字的影響:文字可以感知到浮動(dòng)元素的存在贝次,并且自動(dòng)環(huán)繞浮動(dòng)元素崔兴。可以將文字用div包裹起來(lái),然后清除對(duì)該DIV的浮動(dòng)影響即可敲茄。

清除浮動(dòng)指什么? 如何清除浮動(dòng)? 兩種以上方法

清除浮動(dòng)元素對(duì)其他元素造成的各種影響位谋。
清除浮動(dòng)的辦法:

  1. 對(duì)父元素添加clearfix類名,即可解決浮動(dòng)元素?zé)o法撐開父元素的情況堰燎。clearfix如下
  .clearfix{
    *zoom:1;
  }
  .clearfix:after{
    content:"";
      display:table;
      clear:both;
  }
  1. 在父元素的子元素最后添加一個(gè)空div掏父,并對(duì)其設(shè)置樣式:clear:both;可解決浮動(dòng)元素?zé)o法撐開父元素的情況,這種辦法和clearfix辦法原理相同秆剪,但是多余了一個(gè)div赊淑。
  2. 使用BFC清除浮動(dòng)。
    給元素添加以下屬性會(huì)建立新的BFC仅讽。



    給父容器新建BFC陶缺,則可以利用BFC包含浮動(dòng)元素的特性,清除浮動(dòng)元素不能撐開父元素的影響洁灵。
    給普通元素新建BFC饱岸,則可以利用BFC不能重疊浮動(dòng)元素的特性,而清除被浮動(dòng)元素覆蓋的影響徽千。
    給文字添加包裹層苫费,然后給包裹層新建BFC,則可以使文字不環(huán)繞浮動(dòng)元素双抽。

有幾種定位方式百框,分別是如何實(shí)現(xiàn)定位的,參考點(diǎn)是什么牍汹,使用場(chǎng)景是什么琅翻?

描述
absolute 生成絕對(duì)定位的元素,相對(duì)于 static 定位以外的第一個(gè)父元素進(jìn)行定位柑贞。
元素的位置通過(guò) "left", "top", "right" 以及 "bottom" 屬性進(jìn)行規(guī)定方椎。
fixed 生成絕對(duì)定位的元素,相對(duì)于瀏覽器窗口進(jìn)行定位钧嘶。
元素的位置通過(guò) "left", "top", "right" 以及 "bottom" 屬性進(jìn)行規(guī)定棠众。
relative 生成相對(duì)定位的元素,相對(duì)于其正常位置進(jìn)行定位有决。
因此闸拿,"left:20" 會(huì)向元素的 LEFT 位置添加 20 像素。
static 默認(rèn)值书幕。沒有定位新荤,元素出現(xiàn)在正常的流中(忽略 top, bottom, left, right 或者 z-index 聲明)。
inherit 繼承父元素的position值

z-index 有什么作用? 如何使用?

z-index 屬性設(shè)置元素的堆疊順序台汇。擁有更高堆疊順序的元素總是會(huì)處于堆疊順序較低的元素的前面苛骨。
z-index屬性適用于定位元素(position 屬性值為 relative 或 absolute 或 fixed的對(duì)象)篱瞎。

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

position:relative;:只相對(duì)自己原本位置發(fā)生偏移,不影響其它普通流中元素的位置痒芝。
margin:除了讓元素自身發(fā)生偏移還影響其它普通流中的元素俐筋。

BFC 是什么?如何生成 BFC严衬?BFC 有什么作用澄者?舉例說(shuō)明

BFC的全稱是Block Format Content(塊級(jí)格式化上下文)

滿足下列css聲明之一的元素便會(huì)生成BFC

  • 根元素
  • float的值不為none
  • overflow的值不為visible
  • display的值為inline-block、table-cell请琳、table-caption
  • position的值為absolute或fixed
    但其中粱挡,最常見的就是overflow:hidden、float:left/right俄精、position:absolute抱怔。也就是說(shuō),每次看到這些屬性的時(shí)候嘀倒,就代表了該元素已經(jīng)創(chuàng)建了一個(gè)BFC了屈留。

BFC的作用:
防止父子元素的外邊距合并:給父元素建立新BFC則不會(huì)使父元素和子元素的上下外邊距合并。
清除浮動(dòng)的影響:具體見上文提到的“使用BFC清除浮動(dòng)”测蘑。
多欄布局的一種方式:與浮動(dòng)元素相鄰的已生成BFC的元素不能與浮動(dòng)元素相互覆蓋灌危。利用該特性可以作為多欄布局的一種實(shí)現(xiàn)方式。

在什么場(chǎng)景下會(huì)出現(xiàn)外邊距合并碳胳?如何合并勇蝙?如何不讓相鄰元素外邊距合并?給個(gè)父子外邊距合并的范例

  1. 當(dāng)一個(gè)元素出現(xiàn)在另一個(gè)元素上面時(shí)挨约,第一個(gè)元素的下外邊距與第二個(gè)元素的上外邊距會(huì)發(fā)生合并味混。


  2. 當(dāng)一個(gè)元素包含在另一個(gè)元素中時(shí)(假設(shè)沒有內(nèi)邊距或邊框把外邊距分隔開),它們的上和/或下外邊距也會(huì)發(fā)生合并诫惭。


  3. 假設(shè)有一個(gè)空元素翁锡,它有外邊距,但是沒有邊框或填充夕土。在這種情況下馆衔,上外邊距與下外邊距就碰到了一起,它們會(huì)發(fā)生合并怨绣。



    如果這個(gè)外邊距遇到另一個(gè)元素的外邊距角溃,它還會(huì)發(fā)生合并:


注釋:只有普通文檔流中塊框的垂直外邊距才會(huì)發(fā)生外邊距合并。行內(nèi)框篮撑、浮動(dòng)框或絕對(duì)定位之間的外邊距不會(huì)合并减细。
并且合并的兩個(gè)邊距值
都為正時(shí):合并值取值較大的
一正一負(fù)時(shí):合并值取兩值之差
都為負(fù)時(shí):合并值取絕對(duì)值較大的

阻止外邊距合并的方法:
給其中一個(gè)元素建立新的BFC即可。
給父元素建立新BFC則不會(huì)使父元素和子元素的上下外邊距合并赢笨。
按照BFC的定義未蝌,只有同屬于一個(gè)BFC時(shí)驮吱,兩個(gè)元素才有可能發(fā)生垂直Margin的重疊,這個(gè)包括相鄰元素树埠,嵌套元素

給父元素添加padding 或者border則不會(huì)使父元素和子元素的上下外邊距合并糠馆。

父子外邊距合并范例:
代碼:

<style>
body{
  border:1px solid;
}
.father{
  background: pink;
  width:300px;
  margin:50px;
}  
.child{
  background: red;
  width:200px;
  height:200px;
  margin:50px;
}
</style>
<body>
  <div class="father">
    <div class="child"></div>
  </div>
</body>

圖示:


給父元素添加overflow:hidden;樣式清除上下外邊距合并后:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末嘶伟,一起剝皮案震驚了整個(gè)濱河市怎憋,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌九昧,老刑警劉巖绊袋,帶你破解...
    沈念sama閱讀 221,820評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異铸鹰,居然都是意外死亡癌别,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門蹋笼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)展姐,“玉大人,你說(shuō)我怎么就攤上這事剖毯』浚” “怎么了?”我有些...
    開封第一講書人閱讀 168,324評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵逊谋,是天一觀的道長(zhǎng)擂达。 經(jīng)常有香客問(wèn)我,道長(zhǎng)胶滋,這世上最難降的妖魔是什么板鬓? 我笑而不...
    開封第一講書人閱讀 59,714評(píng)論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮究恤,結(jié)果婚禮上俭令,老公的妹妹穿的比我還像新娘。我一直安慰自己部宿,他們只是感情好唤蔗,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,724評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著窟赏,像睡著了一般妓柜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上涯穷,一...
    開封第一講書人閱讀 52,328評(píng)論 1 310
  • 那天棍掐,我揣著相機(jī)與錄音,去河邊找鬼拷况。 笑死作煌,一個(gè)胖子當(dāng)著我的面吹牛掘殴,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播粟誓,決...
    沈念sama閱讀 40,897評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼奏寨,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了鹰服?” 一聲冷哼從身側(cè)響起病瞳,我...
    開封第一講書人閱讀 39,804評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎悲酷,沒想到半個(gè)月后套菜,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,345評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡设易,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,431評(píng)論 3 340
  • 正文 我和宋清朗相戀三年逗柴,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片顿肺。...
    茶點(diǎn)故事閱讀 40,561評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡戏溺,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出屠尊,到底是詐尸還是另有隱情旷祸,我是刑警寧澤,帶...
    沈念sama閱讀 36,238評(píng)論 5 350
  • 正文 年R本政府宣布知染,位于F島的核電站肋僧,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏控淡。R本人自食惡果不足惜嫌吠,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,928評(píng)論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望掺炭。 院中可真熱鬧辫诅,春花似錦、人聲如沸涧狮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)者冤。三九已至肤视,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間涉枫,已是汗流浹背邢滑。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留愿汰,地道東北人困后。 一個(gè)月前我還...
    沈念sama閱讀 48,983評(píng)論 3 376
  • 正文 我出身青樓乐纸,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親摇予。 傳聞我的和親對(duì)象是個(gè)殘疾皇子汽绢,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,573評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容