Web前端佈局
Web前端佈局
佈局的概念
什麼是佈局
佈局是前端人員的核心基礎技能。
目的是對所做的頁面模組及內容進行科學合理的組織和呈現。
因此佈局的好壞就直接影響到之後工作的進展與效率。
佈局的作用
- 使頁面美觀、漂亮、讓使用者賞心悅目,留住使用者。
- 提高頁面開發和維護的效率。
佈局的方式
一、浮動佈局
使用CSS中 float 屬性使元素向左或向右移動,使用它塊級元素就會同行顯示。
浮動之後的元素會圍繞它,浮動之前的元素不受影響。
元素浮動後,周圍元素也會重新排列。可使用 clear 清除浮動,來避免此影響。
二、定位佈局
使用 position 屬性定義定位型別,並指定元素位置來佈局。
static 定位
靜態定位的元素遵循正常文件流物件,為HTML的預設值。
fixed 定位
固定定位的元素相對於瀏覽器視窗是固定位置。
視窗滾動也不會移動。
完全脫離文件流,因此不佔據空間,能與其他元素相重疊。
relative 定位
相對定位的元素相對於自身正常位置。
不脫離文件流,移動後原本佔據的空間不會改變。
也經常用來作為絕對定位的容器。
absolute 定位
絕對定位的元素相對於已定位的父元素,若無已定位的父元素,則相對於HTML。
脫離文件流,不佔據空間,與其他元素相重疊。
sticky 定位
粘性定位是基於頁面滾動位置,在相對定位和固定定位之間切換顯示。
堆疊順序
使用 z-index 屬性控制堆疊順序,值越大層級越高。
有定位的元素比沒有定位的元素層級高。
在都有定位的情況下,層級取決於書寫順序。
三、靜態佈局
靜態佈局是在網頁上對所有元素的尺寸一律使用 px 為單位。
靜態佈局是傳統的網站佈局方式,當螢幕縮小時,會出現橫向和豎向的滾動條,來以隱藏溢位部分。
優點:
程式碼簡單,編寫容易,且無相容性問題。
缺點:
無法根據不同的螢幕尺寸做出相應的表現。
四、流式佈局
流式佈局使用 % 定義元素的寬度,使用 px 定義元素高度。
當螢幕解析度發生變化時,頁面中元素大小改變,佈局位置不變。
往往配合 max-width 和 min-width 等屬性控制元素尺寸流動範圍,以免過大或過小影響閱讀。
優點:
在不同的螢幕尺寸下顯示相同的樣式(前端開發早期螢幕尺寸差異不大)。是移動端常用佈局方式。
缺點:
如果螢幕尺寸與最初設計的比例之間跨度過大,元素會被拉伸或擠壓,導致內容顯示不協調。
五、彈性佈局
彈性佈局可以簡單、完整、相應式的實現各種頁面佈局。並且相容所有主流瀏覽器。
對容器(父元素)與專案(子元素)新增屬性進行佈局。
使用 em (相對父元素的尺寸)和 rem (相對HTML元素的尺寸)為單位設定元素,且支援字型大小調整。
優點:
靈活性高,可完美適應寬高比一樣的螢幕尺寸。
缺點:
這種只是寬度自適應,高度不是自適應,因此不能滿足對高度或元素間距有要求的設計。
六、自適應佈局
自適應佈局是建立多個靜態佈局,每個靜態佈局對應一個螢幕尺寸範圍。
使用 @media 媒體查詢在不同尺寸的裝置上切換相對應的樣式。
優點:
通過開發多套介面來滿足不同螢幕尺寸所對應的樣式需求。
缺點:
自適應螢幕適配是在一定範圍內,若螢幕太小,頁面內容會擁擠。
七、響應式佈局
相應式佈局的每個螢幕下會有一個佈局樣式,即元素位置和大小都會變。
頁面相容所有螢幕尺寸,而不是為每一個螢幕尺寸做特定的樣式。
通常使用 @media 媒體查詢和網格系統配合進行佈局。
優點:
滿足使用者在不同裝置上瀏覽訪問的需求。
同時方便網站內容的管理與更新、針對搜尋引擎友好等特點。
缺點:
設計難,實現難,成本大。
佈局應用
- 若只做 pc 端,靜態佈局是最好的選擇,通過定寬高即可簡單快捷的完成。
- 若只做移動端,且元素高度與間距要求不高,彈性佈局是最好的選擇,使用 css 以及調節字型大小即可完成。
- 若pc端與移動端要相容,且要求很高,響應式佈局是最好的選擇,根據不同寬高做不同佈局。
常見佈局問題
高度坍塌
文件流中,父元素若沒有設定高度,它的高度是由子元素撐開的。
在子元素設定浮動後,子元素完全脫離文件流,導致子元素不在撐起父元素的高度,父元素便會高度坍塌。
會造成父元素下的所有元素向上移動,頁面佈局混亂。
解決方法:
給父元素定義高度。
使用空元素清除浮動。
父元素設定 overflow 屬性。
待更…
相關文章
- 前端成神之路-移動web開發_流式佈局前端Web
- Web移動端佈局Web
- 前端css佈局之BFC前端CSS
- 前端BFC佈局學習前端
- 前端佈局基礎概述前端
- web移動佈局所需:remWebREM
- 移動 WEB 開發的佈局方式 ---- 響應式佈局Web
- 前端成神之路-移動web開發之響應式佈局前端Web
- 前端開發常見佈局前端
- 前端網頁佈局全解析前端網頁
- 前端面試之居中佈局前端面試
- 前端面試1:CSS佈局前端面試CSS
- Web前端技術分享:網頁排版佈局常見問題彙總Web前端網頁
- Web網頁佈局的主要方式Web網頁
- 前端常見的十種佈局前端
- 常用前端佈局,CSS技巧介紹前端CSS
- 「前端那些事兒」③ CSS 佈局方案前端CSS
- 前端佈局總結(持續更新)前端
- 好程式設計師web前端技術分享移動端頁面佈局程式設計師Web前端
- Web自適應佈局那些事兒Web
- Python全棧Web(定位佈局、定位方式)Python全棧Web
- java web前端easyui(layout+tree+雙tabs)佈局+樹+2個選項卡tabsJavaWeb前端UI
- 前端響應式佈局基礎——rem前端REM
- css佈局-float佈局CSS
- CSS佈局 --- 居中佈局CSS
- web響應式佈局之 meta詳解Web
- web移動端佈局的那些事兒Web
- 快速學習掌握移動Web開釋出局總結(流式佈局+flex伸縮佈局+rem佈局+Boostrap框架 )(更新中)WebFlexREM框架
- 保安日記:前端學習第十三篇之移動端佈局rem佈局前端REM
- Skypack:我老早就在佈局前端基建了前端
- 前端不得不瞭解的 Flex 佈局前端Flex
- 前端響應式佈局原理與實踐前端
- 前端佈局方式彙總及概念淺析前端
- 前端面試3:flex彈性盒佈局前端面試Flex
- java:佈局方法(流佈局)Java
- qt 佈局---表單佈局QT
- 居中佈局、三欄佈局
- ASP.NET Web Pages – 頁面佈局簡介ASP.NETWeb