1、浮動(dòng)元素有什么特征绰筛?對(duì)父容器枢泰、其他浮動(dòng)元素、普通元素铝噩、文字分別有什么影響?
- 浮動(dòng)元素不占據(jù)文檔流衡蚂,浮動(dòng)框可以左右移動(dòng),直到它的邊緣碰到包含框或另一個(gè)浮動(dòng)框的邊緣骏庸,
- 對(duì)父容器的影響:由于浮動(dòng)元素不占據(jù)文檔流毛甲,易導(dǎo)致父容器塌陷。
- 對(duì)其他浮動(dòng)元素:
1具被、沒(méi)有足夠的水平空間玻募,浮動(dòng)框向下移動(dòng),直到有足夠空間的地方
2一姿、如果浮動(dòng)元素的高度不同七咧,那么當(dāng)它向下移動(dòng)時(shí)可能會(huì)被其他浮動(dòng)元素“卡住”。 - 對(duì)普通元素:由于浮動(dòng)不占據(jù)文檔流叮叹,因此普通元素會(huì)忽視浮動(dòng)元素的存在艾栋,也會(huì)形成浮動(dòng)元素“遮擋”普通元素的現(xiàn)象
- 對(duì)文字:普通流中的文字會(huì)感知浮動(dòng)元素的存在,形成文本環(huán)繞浮動(dòng)框的現(xiàn)象
2蛉顽、清除浮動(dòng)指什么? 如何清除浮動(dòng)? 兩種以上方法
- 清除浮動(dòng)是指清除浮動(dòng)后造成父容器坍塌的現(xiàn)象蝗砾,讓父容器再次包含浮動(dòng)元素
方法1:在浮動(dòng)元素下添加一個(gè)空元素并清除它
方法2:浮動(dòng)父容器(副作用在于下一個(gè)元素會(huì)受到浮動(dòng)當(dāng)前浮動(dòng)父容器的影響)
方法3、利用CSS中的偽類:after和內(nèi)容聲明在指定的現(xiàn)有內(nèi)容的末尾添加新的內(nèi)容(通用型處理方法携冤,無(wú)副作用)
3悼粮、有幾種定位方式,分別是如何實(shí)現(xiàn)定位的曾棕,參考點(diǎn)是什么矮锈,使用場(chǎng)景是什么?
定位方式:相對(duì)定位睁蕾、絕對(duì)定位、固定定位
相對(duì)定位(可看作普通流定位模型的一部分):通過(guò)設(shè)置垂直或者水平的位置债朵,讓元素“相對(duì)于”它的起點(diǎn)移動(dòng)子眶,參考點(diǎn)為該元素原來(lái)占有的起點(diǎn);當(dāng)使用相對(duì)定位的時(shí)候序芦,無(wú)論是否移動(dòng)臭杰,元素依舊占據(jù)原來(lái)的空間
絕對(duì)定位:絕對(duì)定位使元素的位置與普通文檔流無(wú)關(guān),因此不占據(jù)空間谚中,其參考點(diǎn)是相對(duì)于距離離它最近的那個(gè)已經(jīng)定位(relative渴杆、absolute寥枝、fixed)的祖先元素確定的,若祖先元素?zé)o定位磁奖,則相對(duì)其其實(shí)包含塊定位(HTML元素)
固定定位:固定定位可看作是絕對(duì)定位的一種囊拜,其參考點(diǎn)是瀏覽器的視口(viewport)
4、 z-index 有什么作用? 如何使用?
z-index屬性是控制框的疊放次序比搭,z-index的值越大冠跷,框在棧中的位置就越高。
5身诺、 position:relative和負(fù)margin都可以使元素位置發(fā)生偏移?二者有什么區(qū)別
可以蜜托,使用position:relative
元素依舊占據(jù)原來(lái)的空間,未脫離文檔流准给,不影響其他元素的位置孝凌;使用負(fù)margin使元素脫離了原來(lái)文檔流臀栈,會(huì)影響下一個(gè)元素的位置
6、BFC 是什么蜂挪?如何生成 BFC?BFC 有什么作用迫肖?舉例說(shuō)明
- BFC就是頁(yè)面上的一個(gè)隔離的獨(dú)立容器锅劝,容器里面的子元素不會(huì)影響到外面的元素。
- 如何形成BFC :一個(gè)元素內(nèi)蟆湖,運(yùn)用overflow:auto/hidden/scroll absolute故爵、fixed、float隅津、inline-block這些CSS樣式的時(shí)候诬垂,可以創(chuàng)建一個(gè)新的格式化上下文。
- BFC可以清除浮動(dòng)(給浮動(dòng)元素的父級(jí)加絕對(duì)定位或浮動(dòng)樣式都可以達(dá)到清除浮動(dòng)的作用)伦仍;BFC可以阻止margin合并结窘。
7、在什么場(chǎng)景下會(huì)出現(xiàn)外邊距合并充蓝?如何合并隧枫?如何不讓相鄰元素外邊距合并?給個(gè)父子外邊距合并的范例
- 外邊距合并:只有普通文檔流中塊框的垂直外邊距才會(huì)發(fā)生外邊距合并谓苟。行內(nèi)框官脓、浮動(dòng)框或絕對(duì)定位之間的外邊距不會(huì)合并。
-
如何合并:當(dāng)兩個(gè)或者更多垂直的外邊距相遇時(shí)涝焙,它們將形成一個(gè)外邊距卑笨,這個(gè)外邊距的高度等于兩個(gè)發(fā)生外邊距合并中的外邊距的高度中的較大者
1、相鄰元素合并
2仑撞、父子外邊距合并
3赤兴、空元素自身的頂外邊距和底外邊距合并
- 如何不讓外邊距合并(以父子外邊距合并為例):
1妖滔、使用border給父元素加一道界限
2、使用內(nèi)邊距給父元素加一道界限
3桶良、使用BFC的特性使兩個(gè)元素獨(dú)立開(kāi)來(lái)(增加一條無(wú)形的界限)