CSS那些事兒2
1.浮動元素有什么特征记餐?對父容器侦副、其他浮動元素页滚、普通元素、文字分別有什么影響?
. 1.1 首先解釋浮動:
使元素脫離文檔流(雖然似乎國外沒有文檔流這個具體概念),按照我們指定的方式移動(left戳护,right等等)
當(dāng)浮動元素遇到父級元素邊界或者相鄰的浮動元素則停止浮動
文檔中的普通元素察覺不到浮動元素存在宜肉,但是文本可以感覺到吟温,出現(xiàn)環(huán)繞浮動元素排列的現(xiàn)象
. 1.2影響:
. 1.2.1父容器
所有元素都是浮動元素幽告,父容器失去高度(即高度坍塌)
. 1.2.2其他浮動元素
兩種情況:對其他浮動元素的影響:如果父元素的寬度不夠梅鹦,父容器里的其他浮動元素會向下移動,直到位置足夠放下评腺。
如果浮動元素的高度不同帘瞭,向下移動的元素就會被比它高的元素卡住
. 1.2.3普通元素淑掌,文字
普通元素感知不到浮動元素蒿讥,會被遮蓋,文字可以感知抛腕,會環(huán)繞浮動元素排列
2.清除浮動指什么? 如何清除浮動? 兩種以上方法
. 2.1 因為浮動元素脫離文檔流芋绸,父元素?zé)o法感知浮動元素的容量,如果父元素未設(shè)置高度值担敌,父元素高度將無法只由浮動元素?fù)伍_,也就是會出現(xiàn)高度坍塌
. 2.2 清除浮動方式:
. after偽類大法:在父元素中加入after偽標(biāo)簽父元素:after{content:'';display:block;clear:both;}:after{content"添加的內(nèi)容";} IE6摔敛,7下不兼容
zoom :1 用來觸發(fā) IE下 haslayout,使元素根據(jù)自身內(nèi)容計算寬高全封。
. 最后一個子元素后面添加一個沒有高度的空div{clear:both;}
. 將父元素轉(zhuǎn)化為BFC后面會講到马昙!
overflow:hidden/auto/scroll(客官三選一)
display:inline-block float:方位等等
3.有幾種定位方式桃犬,分別是如何實現(xiàn)定位的,參考點是什么行楞,使用場景是什么攒暇?
inherit 規(guī)定應(yīng)該從父元素繼承 position 屬性的值
static 默認(rèn)值,沒有定位,元素出現(xiàn)在正常的流中(忽略 top, bottom, left, right 或者 z-index 聲明)
relative 生成相對定位的元素子房,相對于元素本身正常位置進(jìn)行定位,因此形用,left:20px會向元素的 left 位置添加20px
absolute 生成絕對定位的元素,相對于static定位以外的第一個祖先元素(offset parent)進(jìn)行定位,元素的位置通過 left, top, right以及 bottom 屬性進(jìn)行規(guī)定
fixed 生成絕對定位的元素证杭,相對于瀏覽器窗口進(jìn)行定位田度。元素的位置通過 left, top, right 以及 bottom 屬性進(jìn)行規(guī)定
sticky CSS3新屬性,表現(xiàn)類似position:relative和position:fixed的合體解愤,在目標(biāo)區(qū)域在屏幕中可見時镇饺,它的行為就像position:relative; 而當(dāng)頁面滾動超出目標(biāo)區(qū)域時,它的表現(xiàn)就像position:fixed琢歇,它會固定在目標(biāo)位置
4.z-index 有什么作用? 如何使用?
z-index 屬性指定一個元素的堆疊順序兰怠。因為絕對定位的元素脫離了普通流,所以絕對定位的元素可以覆蓋頁面上的其它元素李茫。數(shù)兒越大在越外層:z-index:4;數(shù)值越高揭保,越優(yōu)先顯示。
5.position:relative和負(fù)margin都可以使元素位置發(fā)生偏移?二者有什么區(qū)別
. position:relative;只相對自己原本位置發(fā)生偏移魄宏,不影響其它普通流中元素的位置秸侣。也就是說還占據(jù)文檔流中原來的位置。
. margin:除了讓元素自身發(fā)生偏移還影響其它普通流中的元素宠互。后面的元素會緊跟此元素占據(jù)位置
6.BFC 是什么味榛?如何生成 BFC?BFC 有什么作用予跌?舉例說明
. BFC搏色,格式化塊級上下文,使元素形成獨立的與其他塊隔離的容器券册,容器里面的子元素不會影響到外面的元素频轿。
float 除了none以外的值
overflow 除了visible 以外的值(hidden,auto烁焙,scroll )
display (table-cell航邢,table-caption,inline-block, flex, inline-flex)
position值為(absolute骄蝇,fixed)
fieldset元素
在以上的情況里可以創(chuàng)建BFC
. (1) 解決margin重疊問題膳殷,同一個BFC中,相鄰元素之間的邊距會合并九火,如果把這兩個元素分別放在兩個BFC中赚窃,他們的邊距就不會合并册招。一般應(yīng)用于嵌套。
.(2) 清除浮動勒极。BFC不會重疊浮動元素跨细。
7.在什么場景下會出現(xiàn)外邊距合并?如何合并河质?如何不讓相鄰元素外邊距合并冀惭?給個父子外邊距合并的范例
. 外邊距合并:兩個在普通文檔流中相鄰的元素外邊距相遇的時候發(fā)生合并。這個相鄰可以是父子關(guān)系相鄰掀鹅,兄弟關(guān)系相鄰散休,一個元素內(nèi)部沒有東西,自身的上下邊距相遇時都會發(fā)生外邊距合并乐尊。只有普通文檔流中塊框的垂直外邊距才會發(fā)生外邊距合并戚丸。行內(nèi)框、浮動框或絕對定位之間的外邊距不會合并
會選取較大值進(jìn)行合并
合并的結(jié)果: 兩個外邊距都是正數(shù)扔嵌,取兩者之中的較大者限府;兩個外邊距都是負(fù)數(shù),取兩者之間絕對值較大者痢缎;當(dāng)兩個外邊距一正一負(fù)時胁勺,取兩者的和。