1.文檔流的概念指什么猿棉?有哪種方式可以讓元素脫離文檔流?
文檔流:從左往右一次排列內(nèi)聯(lián)元素,塊級元素一直從上往下排列残邀。
脫離文檔流方式:
絕對定位position:absolute;
固定定位:position:fixed;
浮動:float;
2.有幾種定位方式皆辽,分別是如何實現(xiàn)定位的,使用場景如何芥挣?
有4種定位方式:
(1)static:表示默認值
(2)relative:相對于元素自身的正常位置進行定位驱闷,定位后還占據(jù)其原始位置使后面的元素還是像以前的位置進行排列,所以不會脫離文檔流空免。
(3)absolute:表示絕對定位空另,將元素從文檔流中脫離出來,然后使用left蹋砚、right扼菠、top、bottom屬性相對于其最接近的一個具有定位屬性(relative坝咐、absolute循榆、fixed)的父包含塊進行絕對定位。如果不存在這樣的包含塊墨坚,則相對于body元素秧饮。
(4)fixed:相對于窗口進行定位,表示固定在窗口的某一位置泽篮,它不會隨瀏覽器窗口的滾動條滾動而變化盗尸,也不會受文檔里影響。
3.absolute, relative, fixed偏移的參考點分別是什么
absolute:static 定位以外的第一個父元素進行定位帽撑。
relative:相對于元素自身的正常位置進行定位泼各。
fixed:相對于瀏覽器窗口進行定位。
4.z-index 有什么作用? 如何使用?
z-index用來控制層疊元素顯示的優(yōu)先級亏拉,值越大扣蜻,優(yōu)先級就越高寸癌。
5.position:relative和負margin都可以使元素位置發(fā)生偏移?二者有什么區(qū)別?
position:relative:是相對于自身靜態(tài)位置進行定位弱贼,還占據(jù)著原有的位置,所以不會脫離文檔流磷蛹,也就沒有影響其他元素吮旅。
負margin:通過負margin進行偏移,元素會放棄原有自身靜態(tài)的位置味咳,脫離了文檔流庇勃,從而其他元素會被影響,所以其他元素的位置也發(fā)生了變化槽驶。
6.如何讓一個固定寬高的元素在頁面上垂直水平居中?
在元素上設置position: absolute;這樣就是相對于父容器進行絕對定位责嚷,再給這個元素設置top和left值都是-50%,然后再設置margin值為寬高的一半掂铐。
7.浮動元素有什么特征罕拂?對其他浮動元素、普通元素全陨、文字分別有什么影響?
特征:
(1)浮動元素會脫離文檔流爆班,從而不占據(jù)自身的原本位置,也導致了其他元素會受到影響辱姨。
(2)浮動的框可以向左或向右移動柿菩,直到它的外邊緣碰到包含框或另一個浮動框的邊框為止。
(3)設置元素的浮動都會被顯示為一個塊級元素雨涛。
對其他浮動元素的影響:其他浮動元素會依次排列在浮動元素的左邊或右邊枢舶,如果父容器包裹不下會自動排列到下一行。
對普通元素的影響:浮動元素會脫離文檔流替久,不在占據(jù)原有的位置凉泄,所以對普通元素來說會自動填滿浮動元素的原有位置,而且浮動元素會浮在上面侣肄。
對文字的影響:文字受到浮動元素的影響旧困,會留出浮動元素占據(jù)的空間,從而形成文字環(huán)繞效果稼锅。
8.清除浮動指什么? 如何清除浮動?
清除浮動指的是清除浮動元素所帶來的影響吼具,比如由于浮動,父元素無法撐起高度矩距,影響與父元素同級的元素拗盒;與浮動元素同級的非浮動元素會緊隨其后;若非第一個元素浮動锥债,則該元素之前的元素也需要浮動陡蝇,否則會影響布局痊臭。
通過使用clear:left / right / both / none;來清除浮動(清除浮動只對元素本身有效)