本教程版權歸小圓和饑人谷所有,轉載須說明來源
問答
1. 負邊距在讓元素產生偏移時和position: relative
有什么區別?
負邊距使元素相對于文檔流進行偏移,使元素在文檔流中的位置發生了改變,其他元素也會隨著文檔流改變而發生偏移;position:relative使元素相對于自身位置進行偏移,而元素在文檔流中的位置并沒有改變,其他元素也不會因此發生偏移。
2. 使用負 margin 形成三欄布局有什么條件?
- 三欄元素都是浮動元素
- 在三欄元素的父容器上清除浮動
- 中間欄要放在文檔流前面以優先渲染
- 兩側欄的寬度固定,中間欄寬度隨瀏覽器寬度自適應(最好設置最小寬度)
3. 圣杯布局的原理是怎樣的? 簡述實現圣杯布局的步驟
原理:先利用浮動和負邊距實現三欄布局,再用相對定位調整兩邊的側欄。
步驟:
- 創建一個包裹三個子元素的父容器,左右欄固定寬高,中間欄寬度自適應,并給父元素設置左右padding,預留左右兩欄的位置
- 給所有子元素設置浮動(父容器清除浮動),并給左右邊欄設置負邊距使其都跑到上面
- 給左右邊欄設置相對定位,移動到左右兩欄的預留位置
4. 雙飛翼布局的原理? 實現步驟?
原理:先利用浮動和負邊距實現三欄布局,再添加額外標簽調整中間欄。
步驟:
- 創建一個包裹三個子元素的父容器,左右欄固定寬高,中間欄寬度自適應
- 給所有子元素設置浮動(父容器清除浮動),并給左右邊欄設置負邊距使其都跑到上面
- 在中間欄里添加額外標簽,將其設置左右padding,將左右邊欄的位置給讓出來