-
1.浮動元素有什么特征疼电?對父容器、其他浮動元素据德、普通元素鳄乏、文字分別有什么影響?
浮動元素的主要特征是脫離普通流,根據(jù)設(shè)定的值向左或向右偏移棘利,直到其邊緣遇到父元素的邊界或者另一個浮動元素的邊框橱野。
對父容器:如果父容器內(nèi)的元素均設(shè)置了浮動,那么他們脫離普通流無法撐起父容器的高度善玫,導(dǎo)致父元素的塌陷水援。
對其它浮動元素:同一父容器內(nèi)的浮動元素按照設(shè)定的方向并排排列,當(dāng)父元素的寬度不夠時茅郎,后面的元素會向下移動蜗元,直到有足夠的空間;如果浮動元素的高度不同系冗,那么有可能擋住移動的路徑奕扣。
對普通元素:無法辨別普通元素,有可能導(dǎo)致覆蓋其它普通元素掌敬,占據(jù)其位置
對文字:文字能夠識別浮動元素惯豆,會圍繞浮動元素
-
2.清除浮動指什么? 如何清除浮動? 兩種以上方法
清除浮動指指清除掉元素內(nèi)的float屬性
①.通過在浮動元素末尾添加一個空的標(biāo)簽
②.使用:after 偽元素 消除浮動
③.父元素也設(shè)置浮動 或者display-blocks(或者其它生成BFC的方式)-
3.有幾種定位方式,分別是如何實現(xiàn)定位的涝开,參考點是什么循帐,使用場景是什么?
absolute 絕對定位 根據(jù)不為默種定位方式認(rèn)定位的第一個父元素進(jìn)行定位
static 默認(rèn)值 沒有定位舀武,元素出現(xiàn)在正常的流中
fixed 生成絕對定位的元素拄养,相對于瀏覽器窗口進(jìn)行定位
relative:相對定位。相對于元素本身正常位置進(jìn)行定位银舱,通過top瘪匿、bottom、left寻馏、right屬性來設(shè)置偏移量棋弥。使用場 景為絕對定位設(shè)定參照物或?qū)υ刈陨砦恢眠M(jìn)行局部調(diào)整。
inherit 從父元素繼承定位屬性
sticky:對象在常態(tài)時遵循普通流诚欠。它就像是 relative和fixed的合體顽染,當(dāng)在屏幕中時按常規(guī)流排版漾岳,當(dāng)卷動到屏幕外 時則表現(xiàn)如fixed
-
4.z-index 有什么作用? 如何使用?
z-index負(fù)責(zé)控制一個元素使用絕對定位,與其它元素重疊粉寞,瀏覽器根據(jù)設(shè)定重疊元素的順序尼荆。可以給z-index設(shè)定值唧垦,越大的順序越在前捅儒。
-
5.position:relative和負(fù)margin都可以使元素位置發(fā)生偏移?二者有什么區(qū)別
position:relative和負(fù)margin都可以使元素位置發(fā)生偏移,二者的區(qū)別表現(xiàn)在:
margin會使元素在文檔流中的位置發(fā)生偏移振亮,它會放棄偏移之前占據(jù)的空間巧还,緊挨其后的元素會填充這部分空間;
相對定位后元素位置發(fā)生偏移坊秸,它仍會堅守原來占據(jù)的空間麸祷,不會讓文檔流的其他元素流入。
-
6.BFC 是什么妇斤?如何生成 BFC摇锋?BFC 有什么作用丹拯?舉例說明
BFC站超,格式化塊級上下文,使元素形成獨立的與其他塊隔離的容器乖酬,確保內(nèi)部元素的屬性不會影響到其它元素
float 除了none以外的值
overflow 除了visible 以外的值(hidden死相,auto,scroll )
display (table-cell咬像,table-caption算撮,inline-block, flex, inline-flex)
position值為(absolute,fixed)
fieldset元素
在以上的情況里可以創(chuàng)建BFC解決margin疊加問題 解決浮動問題
-
7.在什么場景下會出現(xiàn)外邊距合并县昂?如何合并肮柜?如何不讓相鄰元素外邊距合并?給個父子外邊距合并的范例
兩個在普通文檔流中相鄰的元素外邊距相遇的時候發(fā)生合并倒彰。這個相鄰可以是父子關(guān)系相鄰审洞,兄弟關(guān)系相鄰,或者一個元素內(nèi)部沒有東西待讳,自身的上下邊距相遇時都會發(fā)生外邊距合并芒澜。
合并規(guī)則:
兩個外邊距都是正數(shù),取兩者之中的較大者创淡;
兩個外邊距都是負(fù)數(shù)痴晦,取兩者之間絕對值較大者;
當(dāng)兩個外邊距一正一負(fù)時琳彩,取兩者的和誊酌。
范例