一 浮動(dòng)元素有什么特征杠茬?對(duì)父容器、其他浮動(dòng)元素弛随、普通元素瓢喉、文字分別有什么影響?
特征:使元素脫離文檔流,左右浮動(dòng)舀透,文檔流中的元素感覺不到浮動(dòng)元素栓票。
影響
對(duì)父容器來(lái)說(shuō),脫離文檔流,父元素?zé)o法感知浮動(dòng)元素的容量走贪,如果父元素未設(shè)置高度值佛猛,父元素高度將無(wú)法由浮動(dòng)元素?fù)伍_,父容器會(huì)失去高度坠狡。
其它浮動(dòng)元素都根據(jù)左右浮動(dòng)继找,顯示在一排。
普通元素會(huì)被遮檔逃沿,如文檔流中文字圖片內(nèi)容與浮動(dòng)元素所占用區(qū)域重合婴渡,文字內(nèi)容會(huì)被擠開。也就是文字環(huán)繞圖片這種形勢(shì)凯亮。
二 清除浮動(dòng)指什么? 如何清除浮動(dòng)? 兩種以上方法
- 清除浮動(dòng)边臼,浮動(dòng)元素還是浮動(dòng),只是清除浮動(dòng)帶來(lái)的副作用假消。
- 在父元素的子元素的最后添加一個(gè)沒有高度的空的塊標(biāo)簽硼瓣,并且設(shè)置屬性 clear:both;
2.在父元素上添加after偽類
.container:after{
content: "";
display: block;
clear: both/;
}
3.讓父元素也浮動(dòng)起來(lái)。
三 有幾種定位方式置谦,分別是如何實(shí)現(xiàn)定位的堂鲤,參考點(diǎn)是什么,使用場(chǎng)景是什么媒峡?
inherit 從父元素繼承 position 屬性的值
static 默認(rèn)值瘟栖,沒有定位,元素出現(xiàn)在正常的文檔流中谅阿。參考點(diǎn)是文檔流中的位置半哟。
relative 相對(duì)定位。相對(duì)于元素本身正常位置進(jìn)行定位签餐,通過(guò)top寓涨、bottom、left氯檐、right屬性來(lái)設(shè)置偏移量戒良。
使用場(chǎng)景:為絕對(duì)定位設(shè)定參照物或?qū)υ刈陨砦恢眠M(jìn)行局部調(diào)整。
4.absolute 絕對(duì)定位冠摄。相對(duì)于static定位以外的第一個(gè)祖先元素進(jìn)行定位糯崎,若都沒有發(fā)現(xiàn)則以html標(biāo)簽為參考進(jìn)行定位。
使用場(chǎng)景:當(dāng)想讓元素參照特定參照物進(jìn)行定位時(shí)使用河泳。
fixed:固定定位沃呢。生成絕對(duì)定位元素,相對(duì)于viewport進(jìn)行定位拆挥。
sticky:對(duì)象在常態(tài)時(shí)遵循普通流薄霜。它就像是relative和fixed的合體,當(dāng)在屏幕中時(shí)按常規(guī)流排版,當(dāng)卷動(dòng)到屏幕外時(shí)則表現(xiàn)如fixed惰瓜。兼容性不佳否副,不常用。
四 z-index 有什么作用? 如何使用?
當(dāng)頁(yè)面上出現(xiàn)多個(gè)由絕對(duì)定位或固定定位所產(chǎn)生的浮動(dòng)層時(shí)鸵熟,這些浮動(dòng)層的位置就由z-index來(lái)決定副编,數(shù)值越大负甸,越在上面流强。
使用條件: 當(dāng)元素被定位時(shí)(absolute,relative呻待,fixed)打月,z-index才生效。
層疊上下文的7種層疊等級(jí)
- 背景和邊框
- 負(fù)z-index值
- 塊級(jí)盒
- 浮動(dòng)盒
- 行內(nèi)盒
- z-index:0
- 正z-index值
五 position:relative和負(fù)margin都可以使元素位置發(fā)生偏移?二者有什么區(qū)別
position:relative蚕捉,元素在文檔流中的位置不變奏篙,不影響后面元素在文檔流中的布局。
margin迫淹,元素在文檔流中位置發(fā)生了變化秘通,影響后面元素在文檔流中的布局。
六 BFC 是什么敛熬?如何生成 BFC肺稀?BFC 有什么作用?舉例說(shuō)明
BFC是塊級(jí)格式上下文应民。其定義是:浮動(dòng)话原、絕對(duì)定位(絕對(duì)定位、固定定位)元素诲锹、塊級(jí)容器(如inline-block繁仁、 table-cell、table-caption)并不是塊級(jí)盒子归园,還包括哪些overflow屬性值取值visible以外的塊級(jí)盒子黄虱,會(huì)為它們的內(nèi)容物創(chuàng)建一個(gè)新的塊級(jí)格式化上下文。
七 在什么場(chǎng)景下會(huì)出現(xiàn)外邊距合并庸诱?如何合并悬钳?如何不讓相鄰元素外邊距合并?給個(gè)父子外邊距合并的范例
外邊距合并指的是偶翅,當(dāng)兩個(gè)垂直外邊距相遇時(shí)默勾,即當(dāng)一個(gè)元素出現(xiàn)在另一個(gè)元素上面時(shí),第一個(gè)元素的下外邊距與第二個(gè)元素的上外邊距會(huì)發(fā)生合并聚谁。
合并規(guī)則
兩個(gè)margin都是正值的時(shí)候母剥,取兩者的最大值
當(dāng) margin 都是負(fù)值的時(shí)候,取的是其中絕對(duì)值較大的,然后环疼,從0位置习霹,負(fù)向位移
當(dāng)有正有負(fù)的時(shí)候,先取出負(fù) margin 中絕對(duì)值中最大的炫隶,然后淋叶,和正 margin 值中最大的 margin 相加
所有毗鄰的margin要一起參與運(yùn)算,不能分步進(jìn)行
- 如果塊級(jí)父元素中伪阶,不存在上邊框煞檩、上內(nèi)邊距、內(nèi)聯(lián)元素栅贴、清除浮動(dòng)這四條屬性(也可以說(shuō)斟湃,當(dāng)上邊框?qū)挾燃吧蟽?nèi)邊距距離為0時(shí)),那么這個(gè)塊級(jí)元素和其第一個(gè)子元素的上邊距就可以說(shuō)”挨到了一起“檐薯。此時(shí)這個(gè)塊級(jí)父元素和其第一個(gè)子元素就會(huì)發(fā)生上外邊距合并現(xiàn)象凝赛,換句話說(shuō),此時(shí)這個(gè)父元素對(duì)外展現(xiàn)出來(lái)的外邊距將直接變成這個(gè)父元素和其第一個(gè)子元素的margin-top的較大者坛缕。
- 形成BFC 可以阻止外邊柜合并墓猎,如上一題的給元素添加浮動(dòng),絕對(duì)定位赚楚,inline-block毙沾;父子元素情況下,給父元素添加overflow不為none也可以阻止直晨。