1荐绝、文檔流的概念指什么故源?有哪種方式可以讓元素脫離文檔流?
文檔流是文檔中可顯示對象在排列時所占用的位置,元素的位置由元素在 (X)HTML 中的位置決定
通過定位與浮動的方法可以讓元素脫離文檔流兴泥。
2、有幾種定位方式圣贸,分別是如何實現(xiàn)定位的限次,使用場景如何?
1摩梧、static:默認值物延。沒有定位,元素出現(xiàn)在正常的流中(忽略 top, bottom, left, right 或者 z-index 聲明)仅父。
2叛薯、relative:生成相對定位的元素,通過top,bottom,left,right的設(shè)置相對于其正常位置進行定位笙纤『牧铮可通過z-index進行層次分級。
3粪糙、absolute:生成絕對定位的元素强霎,相對于 static 定位以外的第一個父元素進行定位。元素的位置通過 "left", "top", "right" 以及 "bottom" 屬性進行規(guī)定蓉冈〕俏瑁可通過z-index進行層次分級。
4寞酿、fixed:生成絕對定位的元素家夺,相對于瀏覽器窗口進行定位。元素的位置通過 "left", "top", "right" 以及 "bottom" 屬性進行規(guī)定伐弹±觯可通過z-index進行層次分級。
3惨好、absolute, relative, fixed 偏移的參考點分別是什么
absolute 參考點是相對于 static 定位以外的第一個已經(jīng)定位的父級元素(相對/絕對)來決定的煌茴。
relative 參考點是相對于其正常位置進行定位。
fixed 參考點是相對于瀏覽器窗口進行定位日川。
4蔓腐、z-index 有什么作用? 如何使用?
z-index:針對網(wǎng)頁顯示中的一個特殊屬性,為了表示三維立體的概念如元素的上下層的疊加順序引入了 z-index 屬性來表示 Z 軸龄句。但其只對定位元素有效回论。下面是不同場景下的顯示順序:① z-index 值:值較大的元素將疊加在 z-index 值較小的元素之上,正數(shù)值將疊加在負數(shù)值得對象上分歇。②相同 z-index 的疊加順序:
如果兩個元素都沒有定位發(fā)生位置重合現(xiàn)象或者兩個都已定位元素且z-index 相同發(fā)生位置重合現(xiàn)象傀蓉,那么按文檔流順序,后面的覆蓋前面的职抡。
如果兩個元素都沒有設(shè)置z-index葬燎,使用默認值,一個定位一個沒有定位,那么定位元素覆蓋未定位元素萨蚕。
③父子關(guān)系處理:
如果父元素z-index有效靶草,那么子元素無論是否設(shè)置z-index都和父元素一致,會在父元素上方岳遥,即使是子元素的 z-index 值比父元素小奕翔,也會出現(xiàn)在父元素上方。
如果父元素z-index 失效(未定位或者使用默認值)浩蓉,那么定位子元素的 z-index 設(shè)置生效派继。
④兄弟之間子元素疊加順序:由其父元素決定,父元素值高的疊加低的捻艳,不管子元素 z-index 值得大小驾窟。
5、position:relative 和負 margin 都可以使元素位置發(fā)生偏移?二者有什么區(qū)別
position:relative使元素發(fā)生偏移认轨,雖然能夠覆蓋其他元素绅络,但是只是位置發(fā)生了偏移,對于文檔流沒有影響嘁字,其他元素還會以為它還在那個位置恩急。
負margin使元素位置發(fā)生偏移,也能夠覆蓋其他元素纪蜒,但是其后的元素也會跟著它移動衷恭,會影響文檔流。
6纯续、如何讓一個固定寬高的元素在頁面上垂直水平居中?
把父元素設(shè)置成相對定位relative随珠,子元素設(shè)置成絕對定位absolute,上偏移50%猬错,左偏移50%窗看,由于是點到點的偏移,所以元素會錯過居中的位置倦炒,需要用上邊距和左邊距的負邊距來回到劇中的位置烤芦,負邊距的數(shù)值為被偏移元素寬高的一半。
7析校、浮動元素有什么特征?對其他浮動元素铜涉、普通元素智玻、文字分別有什么影響?
浮動元素會脫離文檔流,會在其他浮動后面繼續(xù)浮動芙代,由于有渲染的先后吊奢,所以有時浮動的順序有所變化。
對于普通元素,浮動元素不會占據(jù)文檔流的位置页滚,所以普通元素會認為它不存在而繼續(xù)文檔流召边,但是塊元素會在浮動元素的下面,行內(nèi)元素和塊元素中的行內(nèi)內(nèi)容會考慮浮動元素的邊界,因此會圍繞著浮動元素。
對于文字裹驰,文本內(nèi)容會受到浮動元素的影響,會移動以留出空間隧熙,也就是常見的文字環(huán)繞。
8幻林、清除浮動指什么? 如何清除浮動?
浮動元素引起的問題:
父元素的高度無法被撐開贞盯,影響與父元素同級的元素
與浮動元素同級的非浮動元素會跟隨其后
若非第一個元素浮動,則該元素之前的元素也需要浮動沪饺,否則會影響頁面顯示的結(jié)構(gòu)
清楚浮動實際上為前面的浮動元素留出了垂直空間躏敢,也可以解決上面問題中的第二個問題與第三個問題。
語法:clear : none | left | right | both
none:默認值整葡。允許兩邊都可以有浮動對象
left:不允許左邊有浮動對象
right:不允許右邊有浮動對象
both:不允許有浮動對象