1:浮動(dòng)元素有什么特征停忿?對(duì)父容器席赂、其他浮動(dòng)元素、普通元素颅停、文字分別有什么影響便监?
- 特征:浮動(dòng)模型也是一種可視化格式模型,浮動(dòng)的框可以左右移動(dòng)(根據(jù)float屬性值而定)毁靶,直到它的外邊緣碰到包含框或者另一個(gè)浮動(dòng)元素的框的邊緣逊移。浮動(dòng)元素不在文檔的普通流中,因此文檔普通流中的塊級(jí)元素感知不到浮動(dòng)元素的存在拐叉。
- 對(duì)父容器影響:浮動(dòng)元素脫離文檔流向左或者向右移動(dòng)凤瘦,知道邊框碰到父元素的邊緣案铺,引起父元素高度塌陷。
- 對(duì)其他浮動(dòng)元素的影響:父容器足夠?qū)挶仕校c其他浮動(dòng)元素同一水平方向依次排列姑子。父容器寬度在同一水平方向上不能同時(shí)容納全部浮動(dòng)元素時(shí),超出父容器寬度的浮動(dòng)元素向下移動(dòng)谢翎,直到有足夠的空間,如果水平排列三個(gè)以上高度不同浮動(dòng)元素剂公,那么向下移動(dòng)的時(shí)候可能會(huì)被卡椎跛巍;
- 對(duì)普通元素的影響:浮動(dòng)元素之前的普通元素不受影響拖吼,浮動(dòng)元素之后的普通元素因感知不到浮動(dòng)元素的尊在會(huì)被浮動(dòng)元素覆蓋吊档。
- 對(duì)文字的影響:文字所在行框(或display:inline-block)因?yàn)楦?dòng)元素的擠壓而縮短唾糯,從而圍繞浮動(dòng)元素排列。
清除浮動(dòng)指什么香璃?如何清除浮動(dòng)舟误??jī)煞N以上方法
- 清除浮動(dòng)緣由:子元素浮動(dòng)引起父元素高度塌陷,因?yàn)闆](méi)有預(yù)先設(shè)置div高度眯牧,所以div高度由其包含的子元素高度決定赖草,而浮動(dòng)脫離文檔流,所以子元素并不會(huì)被計(jì)算高度版确,此時(shí)的div中腿堤,相當(dāng)于div中子元素高度為0如暖,所以發(fā)生了父元素高度塌陷現(xiàn)象;
- 清除浮動(dòng):消除浮動(dòng)元素對(duì)其父元素因浮動(dòng)元素造成的高度塌陷的問(wèn)題酗洒,兩種清除浮動(dòng)思路:
- 1、clear:both/right/left:可以使該元素的左/右不會(huì)有浮動(dòng)元素對(duì)它造成影響(只對(duì)自己有效)
- overflow大法:在浮動(dòng)元素的父級(jí)元素上加上overflow棋嘲;
有幾種定位方式矩桂,分別是如何實(shí)現(xiàn)定位的侄榴,參考點(diǎn)是什么,使用場(chǎng)景是什么蕊爵?
四種不同類型的定位桦山,這會(huì)影響元素框生成的方式
- static
元素框正常生成蒂破。塊級(jí)元素生成一個(gè)矩形框缺前,作為文檔流的一部分,行內(nèi)元素則會(huì)創(chuàng)建一個(gè)或多個(gè)行框胖秒,置于其父元素中寇窑; - relative
元素框偏移某個(gè)距離鸦概,元素仍保持其未定位的形狀,它原本所占的空間仍保留甩骏。
參考點(diǎn):自身在文檔流中的位置窗市。 - absolute
元素框從文檔流完全刪除,并相對(duì)其包含塊定位饮笛。包含塊可能是文檔中的另一個(gè)元素或者是初始化包含快咨察。元素原先在正常文檔流中所占的空間會(huì)關(guān)閉,就好像元素原先不存在一樣福青。元素定位后生成一個(gè)塊級(jí)框,而不論原本他在正常流中生成何種類型的框
參考點(diǎn):距離最近的費(fèi)static祖先元素位置媒役。如果元素沒(méi)有已定位的祖先元素酣衷,那么他的位置就相對(duì)于初始化包含塊html(可能是html標(biāo)簽)來(lái)定位
使用場(chǎng)景:元素的水平垂直居中席爽; - fixed
元素框的表現(xiàn)類似于將position設(shè)置為absolute只锻,不過(guò)其包含塊是視窗本身。
參考點(diǎn):參考瀏覽器窗口(視圖)的位置
使用場(chǎng)景:相對(duì)于瀏覽器窗口位置始終不變的顯示窗口沈矿,比如:固定邊框和底欄
z-index 有什么作用? 如何使用?
- z-index屬性設(shè)置元素在Z軸方向上的堆疊順序羹膳,數(shù)值越大,元素越靠前醒颖∨⑶福可設(shè)置負(fù)的z-index屬性值,z-index僅能在定位元素(position:relative/absolute/fixed)上奏效挺庞。
position:relative和負(fù)margin都可以使元素位置發(fā)生偏移?二者有什么區(qū)別援制?
- position:relative晨仑,元素顯示位置發(fā)生改變秩仆,但是元素在文檔流中的位置不變噪珊,不影響后面元素在文檔流中的布局痢站。
- 負(fù)margin:元素的顯示位置很在文檔流中的位置均發(fā)生變化,會(huì)影響后面元素在文檔流中的位置呜叫。
BFC是什么朱庆?如何生成BFC?BFC有什么作用箱硕?舉例說(shuō)明
塊格式化上下文(block formatting context 是頁(yè)面CSS視覺(jué)渲染(visual CSS rendering)這個(gè)過(guò)程中的概念。它是決定塊盒子的布局及浮動(dòng)元素相互影響的一個(gè)因素斑响。具有內(nèi)部元素的包裹性及對(duì)外部元素的獨(dú)立性
- BFC有三個(gè)特性
- BFC會(huì)阻止垂直外邊距(margin-top、margin-bottom)折疊按照BFC的定義营罢,只有同屬于一個(gè)BFC時(shí)蝙搔,兩個(gè)元素才有可能發(fā)生垂直margin的重疊,這個(gè)包括相鄰元素勤晚,嵌套元素,只有他們之間沒(méi)有阻擋(例如邊框挺邀,非空內(nèi)容,padding等)就會(huì)發(fā)生margin重疊沦补。
因此要解決margin重疊問(wèn)題,只要讓它們不在同一個(gè)BFC就行了产舞,但是對(duì)于兩個(gè)相鄰元素來(lái)說(shuō),意義不大准颓,沒(méi)有必要給它們加個(gè)外殼攘已,但是對(duì)于嵌套元素來(lái)說(shuō)就很有必要了,只要把父元素設(shè)為BFC就可以了剧防,這樣子元素的margin就不會(huì)和父元素的margin發(fā)生重疊了 - BFC不會(huì)重疊浮動(dòng)元素
- BFC可以包含浮動(dòng)
- BFC會(huì)阻止垂直外邊距(margin-top、margin-bottom)折疊按照BFC的定義营罢,只有同屬于一個(gè)BFC時(shí)蝙搔,兩個(gè)元素才有可能發(fā)生垂直margin的重疊,這個(gè)包括相鄰元素勤晚,嵌套元素,只有他們之間沒(méi)有阻擋(例如邊框挺邀,非空內(nèi)容,padding等)就會(huì)發(fā)生margin重疊沦补。
如何形成BFC
float 為 left|right
overflow 為 hidden|auto|scroll
display 為 table-cell|table-caption|inline-block
position absolute|fixed(絕對(duì)定位)
在什么場(chǎng)景下會(huì)出現(xiàn)外邊距合并?如何合并?如何不讓相鄰元素外邊距合并心例?給個(gè)父子外邊距合并的范例
- 同屬于一個(gè)BFC時(shí),兩個(gè)元素可能發(fā)生垂直Margin的重疊溜腐,這個(gè)包括相鄰元素,嵌套元素匪补,只要他們之間沒(méi)有阻擋(例如邊框甘耿,非空內(nèi)容,padding等)就會(huì)發(fā)生margin重疊典蝌。
- 解決margin重疊問(wèn)題:使他們不在同一個(gè)BFC,對(duì)于兩個(gè)相鄰元素來(lái)說(shuō),意義不大涵妥,對(duì)于嵌套元素來(lái)說(shuō)鹉勒,把父元素設(shè)為BFC,子元素的margin就不會(huì)和父元素的margin發(fā)生重疊。
- 父子外邊距合并范例
- 解決父子外邊距合并
代碼
11/05/2017
改 什么都沒(méi)動(dòng),只是復(fù)習(xí)了一下而已
9/25/2017