日夜談——CSS inline-block煤辨、BFC以及外邊距合并

task11.png

1.在什么場景下會(huì)出現(xiàn)外邊距合并裳涛?如何合并?如何不讓相鄰元素外邊距合并众辨?給個(gè)父子外邊距合并的范例端三?

定義:簡單地說,外邊距合并指的是鹃彻,當(dāng)兩個(gè)垂直外邊距相遇時(shí)技肩,它們將形成一個(gè)外邊距。合并后的外邊距的高度等于兩個(gè)發(fā)生合并的外邊距的高度中的較大者。

外邊距合并場景
一:兄弟元素的外邊距合并;
For example:

上下元素外邊距合并.png

二:父子元素外邊距合并;
For example:

父子元素外邊距合并.png

如圖:負(fù)元素上邊距與item1上邊距合并margin:30px虚婿,下邊距與item2下邊距合并margin:10px;旋奢。

解決方案:
一:兄弟元素的外邊距合并;
<li>使用float;</li>
For example:

利用float.png

<li>使用inline-block;</li>
For example:

利用inline-block.png

<li>為相鄰的子元素生成bfc</li>
For example:

bfc.png

</br>
父子元素的外邊距合并的解決方案
</br>
<li>可以在父元素上設(shè)置border或者padding;</li>
For example:

設(shè)置border.png
設(shè)置padding.png

<h4>2.去除inline-block內(nèi)縫隙有哪幾種常見方法?</h4>

inline-block有內(nèi)縫隙是這樣的:

inline-block縫隙.png

解決方法:
<ul>
<li>設(shè)置負(fù)邊距</li>

負(fù)邊距去除縫隙.png

<li>在父元素里設(shè)置font-size:0;</li>

font-size0.png

<li>將display為inline-block的元素放置在一行,此方法不適用與包含較多內(nèi)容的元素</li>

inline-block排成一行.png

<li>使用浮動(dòng)</li>

浮動(dòng)去除縫隙.png

三然痊、父容器使用overflow: auto| hidden撐開高度的原理是什么至朗?

父容器在使用overflow: auto| hidden后使其產(chǎn)生BFC,從而為float開辟出一個(gè)獨(dú)立的空間剧浸,撐開父容器的高度锹引。即:形成自己的“小宇宙”,從而把父容器撐開唆香。

四嫌变、BFC是什么?如何形成BFC躬它,有什么作用?

我的理解:BFC本質(zhì)上就是是一個(gè)元素為其內(nèi)部新生成的獨(dú)立空間腾啥,內(nèi)部的內(nèi)容全被格式化成塊級(jí)容器(注意是塊級(jí)容器,不是塊級(jí)元素)冯吓。

W3C定義:

浮動(dòng)元素和絕對(duì)定位元素倘待,非塊級(jí)盒子的會(huì)計(jì)容器(例如inline-blocks,table-cells,和table-captions),以及overflow值不為“visiable”的塊級(jí)盒子组贺,都會(huì)為他們的內(nèi)容創(chuàng)建新的BFC(塊級(jí)格式上下文)凸舵。

如何形成BFC:
<li>為元素添加float非none的屬性值
<li>為元素添加postion:absolute
<li>為元素添加display:inline-block | table-cells | table-caption
<li>為元素添加overflow:auto | hidden

作用:
<li>防止外邊距合并
<li>清除浮動(dòng)
<li>使用BFC避免文字環(huán)繞

5.浮動(dòng)導(dǎo)致的父容器高度塌陷指什么?為什么會(huì)產(chǎn)生失尖?有幾種解決方法?

當(dāng)一個(gè)父容器的高度為自適應(yīng)時(shí)啊奄,子元素浮動(dòng)會(huì)導(dǎo)致父容器高度塌陷。

How come掀潮?

因?yàn)闉樵靥砑痈?dòng)之后菇夸,會(huì)導(dǎo)致元素脫離文檔流,導(dǎo)致其內(nèi)容在父容器中抽離出來胧辽,由于父容器高度為自適應(yīng)峻仇,即其高度全靠子元素內(nèi)容撐開,子元素消失而父容器高度自然就會(huì)塌陷邑商。

栗子:


沒加浮動(dòng)前.png
高度塌陷.png

Solutions:
1.利用父元素形成BFC摄咆,從而為開辟出獨(dú)立的空間。

建立bfc.png

2.利用clear:both/left/right;清除浮動(dòng)

both人断,left吭从,right.png

3.在父元素中添加偽元素:after和before,這是情況而定恶迈。

after涩金,before.png

6.以下代碼每一行的作用是什么谱醇? 為什么會(huì)產(chǎn)生作用? 和BFC撐開空間有什么區(qū)別步做?

代碼作用.png

<li>以上兩段代碼的作用都是清除浮動(dòng)副渴,但是作用的場景不同。另外與通過父容器建立BFC的原理不同全度,它使用clear屬性去清除浮動(dòng)煮剧。after偽元素在IE8及以上才支持,所有第二段*zoom=1以防第一段代碼失去效用之后将鸵,用來防止清除浮動(dòng)失敗勉盅。

<li>第一段代買是通過在父容器clearfix設(shè)置偽元素,在父容器最后添加內(nèi)容為空的塊級(jí)元素顶掉,并使用clear:both;達(dá)到清除浮動(dòng)的目的草娜。
<li>第二段代碼的解釋是:zoom屬性是IE瀏覽器的專有屬性,它本來是用來設(shè)置或檢索對(duì)象的縮放比例痒筒,但原有屬性很少被使用宰闰,最常使用的是利用觸發(fā)IE瀏覽器的haslayou,以達(dá)到清除浮動(dòng)和外邊距合并的目的凸克。

代碼作業(yè):
<a >代碼一</a>

<a >代碼二</a>

版權(quán)歸饑人谷peter和饑人谷所有议蟆,若有轉(zhuǎn)載闷沥,請注明來源萎战。

感謝吃瓜子觀眾:

gaki11.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市舆逃,隨后出現(xiàn)的幾起案子蚂维,更是在濱河造成了極大的恐慌,老刑警劉巖路狮,帶你破解...
    沈念sama閱讀 206,482評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件虫啥,死亡現(xiàn)場離奇詭異,居然都是意外死亡奄妨,警方通過查閱死者的電腦和手機(jī)涂籽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來砸抛,“玉大人评雌,你說我怎么就攤上這事≈北海” “怎么了景东?”我有些...
    開封第一講書人閱讀 152,762評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長奔誓。 經(jīng)常有香客問我斤吐,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,273評(píng)論 1 279
  • 正文 為了忘掉前任和措,我火速辦了婚禮庄呈,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘派阱。我一直安慰自己抒痒,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,289評(píng)論 5 373
  • 文/花漫 我一把揭開白布颁褂。 她就那樣靜靜地躺著故响,像睡著了一般。 火紅的嫁衣襯著肌膚如雪颁独。 梳的紋絲不亂的頭發(fā)上彩届,一...
    開封第一講書人閱讀 49,046評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音誓酒,去河邊找鬼势木。 笑死,一個(gè)胖子當(dāng)著我的面吹牛揭北,可吹牛的內(nèi)容都是我干的圃庭。 我是一名探鬼主播,決...
    沈念sama閱讀 38,351評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼歼冰,長吁一口氣:“原來是場噩夢啊……” “哼靡狞!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起隔嫡,我...
    開封第一講書人閱讀 36,988評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤甸怕,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后腮恩,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體梢杭,經(jīng)...
    沈念sama閱讀 43,476評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,948評(píng)論 2 324
  • 正文 我和宋清朗相戀三年秸滴,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了武契。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,064評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡荡含,死狀恐怖咒唆,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情内颗,我是刑警寧澤钧排,帶...
    沈念sama閱讀 33,712評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站均澳,受9級(jí)特大地震影響恨溜,放射性物質(zhì)發(fā)生泄漏符衔。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,261評(píng)論 3 307
  • 文/蒙蒙 一糟袁、第九天 我趴在偏房一處隱蔽的房頂上張望判族。 院中可真熱鬧,春花似錦项戴、人聲如沸形帮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽辩撑。三九已至,卻和暖如春仿耽,著一層夾襖步出監(jiān)牢的瞬間合冀,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評(píng)論 1 262
  • 我被黑心中介騙來泰國打工项贺, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留君躺,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,511評(píng)論 2 354
  • 正文 我出身青樓开缎,卻偏偏與公主長得像棕叫,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子奕删,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,802評(píng)論 2 345

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