邊距合并窖贤、浮動以及BFC

在什么場景下會出現外邊距合并?如何合并暇矫?如何不讓相鄰元素外邊距合并主之?給個父子外邊距合并的范例

普通文檔流中,有兩個塊級元素相鄰(可以是兄弟元素李根,也可以是父子元素)且沒有邊界線(padding或者border)槽奕,他們的外邊距就會出現外邊距合并。

合并的結果是:

  • 兩個相鄰的外邊距都是正數時房轿,折疊結果是它們兩者之間較大的值粤攒。
  • 兩個相鄰的外邊距都是負數時,折疊結果是兩者絕對值的較大值囱持。
  • 兩個外邊距一正一負時夯接,折疊結果是兩者的相加的和。

注意纷妆,如果一個塊級元素沒有設置border和padding盔几,只有外邊距的話,他自身的上下外邊距也是會合并的

不讓相鄰的外邊距合并的條件:

  1. 需要在兩個外距之間加一條邊界線:
    這條邊界線可以使padding掩幢,也可以是border逊拍、可以是BFC形成兩個獨立空間讓兩個相鄰元素分開主要目的是為了讓相鄰的外邊距互相不能夠接觸上鞠,這樣就避免產生外邊距合并。

  2. 設置其中一個元素為浮動元素或者絕對定位芯丧,此元素脫離文檔流后不會與任何元素外邊距合并芍阎。

  3. 為其中一個元素加入inline-block,此元素不會與任何元素外邊距合并。

父子外邊距合并范例:

我是范例


去除inline-block 內縫隙有哪幾種常見方法?

假設linline-block的對象為元素li:

  1. 不讓li標簽換行缨恒,或者li標簽的閉合標簽>放在第二行谴咸,這種思路是清除li元素之間的空格縫隙達到無縫對接
  2. 設置margin-left:-4px;這個值相對固定骗露,但帶來的問題是第一個li標簽會溢出岭佳。可單獨為第一個設置margin-left:0
  3. 為li元素設置浮動椒袍。但帶來的 問題是父元素無法被撐開驼唱,要為父元素設置
    overflow: auto;
  4. li元素設置inline-block;為他的父元素設置font-size: 0;同時為li元素里設置font-size(字體大芯允睢)

父容器使用overflow: auto| hidden撐開高度的原理是什么?

overflow: auto| hidden會讓元素成為一個BFC辨赐,形成一個獨立的空間优俘,空間內的排版完全獨立,而這個空間里能夠包裹浮動流掀序,所以就能被浮動元素撐起高度帆焕。

BFC是什么?如何形成BFC不恭,有什么作用?

BFC是一個獨立的布局環(huán)境叶雹,環(huán)境里的任何元素不會受到外界的影響。
要使一個元素形成BFC可以為元素添加:

  • display: inline-block;
  • overflow: auto| hidden
  • 添加浮動
  • position:fixed|absolute絕對定位

bfc可以形成一個獨立的不受外界干擾的布局换吧,內容按照普通文檔流進行排列折晦,我們一般用他來消除浮動元素帶來的負面影響。


浮動導致的父容器高度塌陷指什么沾瓦?為什么會產生满着?有幾種解決方法

浮動導致的父容器高度塌陷是指在父容器元素內如果內容都是浮動元素,而父元素沒有規(guī)定高度贯莺,則父元素會縮為零不會被撐開风喇。
因為浮動元素都是脫離了文檔流,父容器會認為里面沒有內容所以會產生這樣的問題缕探。
解決的辦法有:

  1. 為父容器添加浮動魂莫,父容器的高度就會撐到包含所有浮動元素為止,缺點是會影響到兄弟元素爹耗,解決辦法是為受影響的元素添加clear:both
  2. 為父容器添加overflow:hidden|auto耙考;會撐開父容器高度直到包含所有浮動元素谜喊。
  3. 為父元素添加子元素空的div塊,并對此元素設置clear: both;但是不推薦這樣做琳骡,影響代碼語義化
  4. 為父元素設置絕對定位
  5. 為父元素添加偽類:
.clearrix:after {
     content: " ";
     display: block; 
     clear: both;
}

以下代碼每一行的作用是什么锅论? 為什么會產生作用? 和BFC撐開空間有什么區(qū)別楣号?

.clearfix:after{    /* 定義偽類最易,選擇在clearfix的元素后面插入一個元素 */
    content: '';      /* 元素內容為空,是行內元素 */
    display: block;   /*  將元素變?yōu)閴K級元素 */
    clear: both;       /* 清楚塊級元素浮動 */
}
.clearfix{             /* 選擇clearfix元素 */
    *zoom: 1;              /* 兼容IE6炫狱,清除浮動 */
}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末藻懒,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子视译,更是在濱河造成了極大的恐慌嬉荆,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,591評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件酷含,死亡現場離奇詭異鄙早,居然都是意外死亡,警方通過查閱死者的電腦和手機椅亚,發(fā)現死者居然都...
    沈念sama閱讀 92,448評論 3 392
  • 文/潘曉璐 我一進店門限番,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人呀舔,你說我怎么就攤上這事弥虐。” “怎么了媚赖?”我有些...
    開封第一講書人閱讀 162,823評論 0 353
  • 文/不壞的土叔 我叫張陵霜瘪,是天一觀的道長。 經常有香客問我惧磺,道長颖对,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,204評論 1 292
  • 正文 為了忘掉前任豺妓,我火速辦了婚禮惜互,結果婚禮上,老公的妹妹穿的比我還像新娘琳拭。我一直安慰自己训堆,他們只是感情好,可當我...
    茶點故事閱讀 67,228評論 6 388
  • 文/花漫 我一把揭開白布白嘁。 她就那樣靜靜地躺著坑鱼,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上鲁沥,一...
    開封第一講書人閱讀 51,190評論 1 299
  • 那天呼股,我揣著相機與錄音,去河邊找鬼画恰。 笑死彭谁,一個胖子當著我的面吹牛,可吹牛的內容都是我干的允扇。 我是一名探鬼主播缠局,決...
    沈念sama閱讀 40,078評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼考润!你這毒婦竟也來了狭园?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,923評論 0 274
  • 序言:老撾萬榮一對情侶失蹤糊治,失蹤者是張志新(化名)和其女友劉穎唱矛,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體井辜,經...
    沈念sama閱讀 45,334評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡绎谦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,550評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了粥脚。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片燥滑。...
    茶點故事閱讀 39,727評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖阿逃,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情赃蛛,我是刑警寧澤恃锉,帶...
    沈念sama閱讀 35,428評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站呕臂,受9級特大地震影響破托,放射性物質發(fā)生泄漏。R本人自食惡果不足惜歧蒋,卻給世界環(huán)境...
    茶點故事閱讀 41,022評論 3 326
  • 文/蒙蒙 一土砂、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧谜洽,春花似錦萝映、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至实束,卻和暖如春奥秆,著一層夾襖步出監(jiān)牢的瞬間逊彭,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評論 1 269
  • 我被黑心中介騙來泰國打工构订, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留侮叮,地道東北人。 一個月前我還...
    沈念sama閱讀 47,734評論 2 368
  • 正文 我出身青樓悼瘾,卻偏偏與公主長得像囊榜,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子分尸,可洞房花燭夜當晚...
    茶點故事閱讀 44,619評論 2 354

推薦閱讀更多精彩內容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案锦聊? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 13,748評論 1 92
  • 一,浮動元素有什么特征箩绍?對父容器孔庭、其他浮動元素、普通元素材蛛、文字分別有什么影響? 浮動模型是一種可視化格式模型圆到,浮動...
    DeeJay_Y閱讀 868評論 0 4
  • 一豆赏、在什么場景下會出現外邊距合并挣菲?如何合并?如何不讓相鄰元素外邊距合并掷邦?給個父子外邊距合并的范例 在CSS當中白胀,相...
    dengpan閱讀 572評論 0 0
  • relative:生成相對定位的元素,通過top,bottom,left,right的位置相對于其正常位置進行定位...
    zx9426閱讀 940評論 0 2
  • 1. 在什么場景下會出現外邊距合并向抢?如何合并?如何不讓相鄰元素外邊距合并胚委?給個父子外邊距合并的范例 外邊距合并:外...
    進擊的阿群閱讀 908評論 1 2