1.在什么場景下會出現外邊距合并?如何合并菲盾?如何不讓相鄰元素外邊距合并颓影?給個父子外邊距合并的范例
外邊距合并指的是當兩個垂直邊框(通常是上和下)相遇時,會發(fā)生邊距合并懒鉴,形成外邊框诡挂,值取最大值碎浇。
因此,當兩個垂直的外邊框相遇時(緊挨)璃俗,且途中沒有任何元素擋住時(如另外的 border透明邊框 內邊框padding))就能外邊距合并不合并的方法有:
float或者absolute使他們脫離文檔流
設置padding內邊框
或者overflow設置兩個獨立的BFC(前提要有2個父元素單獨設置)
例子:
外邊距合并test.png
2.去除inline-block內縫隙有哪幾種常見方法?
- 讓行內塊元素標簽緊挨 就是不能有空格 回車
- 設置負的margin-left
- 使用浮動
- 設置父元素的font-size:0
如圖
inline-block去除縫隙.png
3.父容器使用overflow: auto| hidden撐開高度的原理是什么奴璃?
因為overfolw使父元素形成了一個BFC,形成獨立空間城豁,而BFC并不會受其他元素影響(子元素)苟穆,因此可以撐開父元素高度
4.BFC是什么?如何形成BFC唱星,有什么作用?
BFC是形成一個獨立的空間雳旅,并其里的元素不受其外部元素影響。
形成BFC的方法如下:
浮動 絕對间聊、固定定位
overflow(除了visible)
display:inline-block
作用
方便布局
消除外邊距合并
消除浮動(但不同于清除浮動 有副作用)
擴展知識:http://www.cnblogs.com/lhb25/p/inside-block-formatting-ontext.html
5.浮動導致的父容器高度塌陷指什么攒盈?為什么會產生?有幾種解決方法
- 指的是 因為浮動使元素脫離了文檔流哎榴,導致本該有的高度沒有了型豁。
- 產生的原因是沒有指定高度
- 解決的方法
- 清除浮動clear:both
- overflow hidden(有副作用)
6.以下代碼每一行的作用是什么? 為什么會產生作用尚蝌? 和BFC撐開空間有什么區(qū)別迎变?
.clearfix:after{ --------類clearfix的偽類after
content: ''"; --------------放置需要生成的內容
display: block; ----------轉換為塊級元素
clear:both; ------ 清除浮動
}
.clearfix{*zoom: 1;} 放大縮小比例 zoom:1就是和原來一樣大小
其實就是通過偽類創(chuàng)建一個子元素,讓他轉變?yōu)閴K級元素飘言,并清除其受到的浮動
和BFC不同的是衣形,clear:both僅僅是消除兩邊的浮動,而BFC是創(chuàng)建獨立的空間撐開姿鸿,讓其不受其他元素影響泵喘。