1.文檔流的概念指什么?有哪種方式可以讓元素脫離文檔流?
文檔流:從左往右一次排列內聯元素,塊級元素一直從上往下排列。
脫離文檔流方式:
絕對定位position:absolute;
固定定位:position:fixed;
浮動:float;
2.有幾種定位方式,分別是如何實現定位的,使用場景如何?
有4種定位方式:
(1)static:表示默認值
(2)relative:相對于元素自身的正常位置進行定位,定位后還占據其原始位置使后面的元素還是像以前的位置進行排列,所以不會脫離文檔流。
(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用來控制層疊元素顯示的優先級,值越大,優先級就越高。
5.position:relative和負margin都可以使元素位置發生偏移?二者有什么區別?
position:relative:是相對于自身靜態位置進行定位,還占據著原有的位置,所以不會脫離文檔流,也就沒有影響其他元素。
負margin:通過負margin進行偏移,元素會放棄原有自身靜態的位置,脫離了文檔流,從而其他元素會被影響,所以其他元素的位置也發生了變化。
6.如何讓一個固定寬高的元素在頁面上垂直水平居中?
在元素上設置position: absolute;這樣就是相對于父容器進行絕對定位,再給這個元素設置top和left值都是-50%,然后再設置margin值為寬高的一半。
7.浮動元素有什么特征?對其他浮動元素、普通元素、文字分別有什么影響?
特征:
(1)浮動元素會脫離文檔流,從而不占據自身的原本位置,也導致了其他元素會受到影響。
(2)浮動的框可以向左或向右移動,直到它的外邊緣碰到包含框或另一個浮動框的邊框為止。
(3)設置元素的浮動都會被顯示為一個塊級元素。
對其他浮動元素的影響:其他浮動元素會依次排列在浮動元素的左邊或右邊,如果父容器包裹不下會自動排列到下一行。
對普通元素的影響:浮動元素會脫離文檔流,不在占據原有的位置,所以對普通元素來說會自動填滿浮動元素的原有位置,而且浮動元素會浮在上面。
對文字的影響:文字受到浮動元素的影響,會留出浮動元素占據的空間,從而形成文字環繞效果。
8.清除浮動指什么? 如何清除浮動?
清除浮動指的是清除浮動元素所帶來的影響,比如由于浮動,父元素無法撐起高度,影響與父元素同級的元素;與浮動元素同級的非浮動元素會緊隨其后;若非第一個元素浮動,則該元素之前的元素也需要浮動,否則會影響布局。
通過使用clear:left / right / both / none;來清除浮動(清除浮動只對元素本身有效)