網頁不會布局?5種你不可不知的WEB布局方式

作為前端開發工程師,布局方式有多種,針對不同的情況有不一樣的處理,但是很多初學的同學都不知道這些情況,那麼我們今天就來說說,那些前端開發工程師不可不知的5種布局方式!

一、靜態布局(static layout)

即傳統Web設計,網頁上的所有元素的尺寸一律使用px作為單位。

1、布局特點

不管瀏覽器尺寸具體是多少,網頁布局始終按照最初寫代碼時的布局來顯示。常規的pc的網站都是靜態(定寬度)布局的,也就是設置了min-width,這樣的話,如果小於這個寬度就會出現滾動條,如果大於這個寬度則內容居中外加背景,這種設計常見於pc端。

2、設計方法

PC:居中布局,所有樣式使用絕對寬度/高度(px),設計一個Layout,在屏幕寬高有調整時,使用橫向和豎向的滾動條來查閱被遮掩部分;

移動設備:另外建立移動網站,單獨設計一個布局,使用不同的域名如wap.或m.。

優點:這種布局方式對設計師和CSS編寫者來說都是最簡單的,亦沒有兼容性問題。

缺點:顯而易見,即不能根據用戶的屏幕尺寸做出不同的表現。當前,大部分門戶網站、大部分企業的PC宣傳站點都採用了這種布局方式。固定像素尺寸的網頁是匹配固定像素尺寸顯示器的最簡單辦法。但這種方法不是一種完全兼容未來網頁的製作方法,我們需要一些適應未知設備的方法。

二、流式布局(Liquid Layout)

流式布局(Liquid)的特點(也叫"Fluid") 是頁面元素的寬度按照屏幕解析度進行適配調整,但整體布局不變。代表作柵欄系統(網格系統)。

網頁中主要的劃分區域的尺寸使用百分數(搭配min-*、max-*屬性使用),例如,設置網頁主體的寬度為80%,min-width為960px。圖片也作類似處理(width:100%, max-width一般設定為圖片本身的尺寸,防止被拉伸而失真)。

1. 布局特點

屏幕解析度變化時,頁面里元素的大小會變化而但布局不變。【這就導致如果屏幕太大或者太小都會導致元素無法正常顯示。

2. 設計方法

使用%百分比定義寬度,高度大都是用px來固定住,可以根據可視區域 (viewport) 和父元素的實時尺寸進行調整,儘可能的適應各種解析度。往往配合 max-width/min-width 等屬性控制尺寸流動範圍以免過大或者過小影響閱讀。

這種布局方式在Web前端開發的早期歷史上,用來應對不同尺寸的PC屏幕(那時屏幕尺寸的差異不會太大),在當今的移動端開發也是常用布局方式,但缺點明顯:主要的問題是如果屏幕尺度跨度太大,那麼在相對其原始設計而言過小或過大的屏幕上不能正常顯示。因為寬度使用%百分比定義,但是高度和文字大小等大都是用px來固定,所以在大屏幕的手機下顯示效果會變成有些頁面元素寬度被拉的很長,但是高度、文字大小還是和原來一樣(即,這些東西無法變得「流式」),顯示非常不協調

三、自適應布局(Adaptive Layout)

自適應布局的特點是分別為不同的屏幕解析度定義布局,即創建多個靜態布局,每個靜態布局對應一個屏幕解析度範圍。改變屏幕解析度可以切換不同的靜態局部(頁面元素位置發生改變),但在每個靜態布局中,頁面元素不隨窗口大小的調整發生變化。可以把自適應布局看作是靜態布局的一個系列。

1、布局特點

屏幕解析度變化時,頁面裡面元素的位置會變化而大小不會變化。

2、設計方法

使用 @media 媒體查詢給不同尺寸和介質的設備切換不同的樣式。在優秀的響應範圍設計下可以給適配範圍內的設備最好的體驗,在同一個設備下實際還是固定的布局。

四、響應式布局(Responsive Layout)

寫隨著CSS3出現了媒體查詢技術,又出現了響應式設計的概念。響應式設計的目標是確保一個頁面在所有終端上(各種尺寸的PC、手機、手錶、冰箱的Web瀏覽器等等)都能顯示出令人滿意的效果,對CSS編者而言,在實現上不拘泥於具體手法,但通常是糅合了流式布局+彈性布局,再搭配媒體查詢技術使用。——分別為不同的屏幕解析度定義布局,同時,在每個布局中,應用流式布局的理念,即頁面元素寬度隨著窗口調整而自動適配。即:創建多個流體式布局,分別對應一個屏幕解析度範圍。可以把響應式布局看作是流式布局和自適應布局設計理念的融合。

響應式幾乎已經成為優秀頁面布局的標準。

1. 布局特點

每個屏幕解析度下面會有一個布局樣式,即元素位置和大小都會變。

2. 設計方法

媒體查詢+流式布局。通常使用 @media 媒體查詢 和網格系統 (Grid System) 配合相對布局單位進行布局,實際上就是綜合響應式、流動等上述技術通過 CSS 給單一網頁不同設備返回不同樣式的技術統稱。

優點:適應pc和移動端,如果足夠耐心,效果完美。

缺點:(1)媒體查詢是有限的,也就是可以枚舉出來的,只能適應主流的寬高。(2)要匹配足夠多的屏幕大小,工作量不小,設計也需要多個版本。

響應式頁面在頭部會加上這一段代碼:

<meta name="applicable-device" content="pc,mobile"><meta http-equiv="Cache-Control" content="no-transform ">

五、彈性布局(rem/em布局)

1. rem/em區別:rem是相對於html元素的font-size大小而言的,而em是相對於其父元素。

2. 使用 em 或 rem 單位進行相對布局,相對%百分比更加靈活,同時可以支持瀏覽器的字體大小調整和縮放等的正常顯示,因為em是相對父級元素的原因沒有得到推廣。【中國站點製作網頁的時候,習慣用CSS強制定義字體大小,保證每個人都看到一致的效果,包括網易、搜狐這些門戶網站在內的大部分站點,用的都是絕對單位px(像素)。但是,如果從網站易用性方面考慮,字體大小應該是可變的,一些視力不是那麼好的人需要放大字體才能看得清頁面內容。然而,佔據大部分瀏覽器市場的IE無法調整那些使用px作為單位的字體大小。國外人士非常重視網站的易用性,相當一部分外國站點已經使用em作為字體單位。

3. 這類布局的特點是,包裹文字的各元素的尺寸採用em/rem做單位,而頁面的主要劃分區域的尺寸仍使用百分數或px做單位(同「流式布局」或「靜態/固定布局」)。早期瀏覽器不支持整個頁面按比例縮放,僅支持網頁內文字尺寸的放大,這種情況下。使用em/rem做單位,可以使包裹文字的元素隨著文字的縮放而縮放。

4. 瀏覽器的默認字體高度一般為16px,即1em:16px,但是 1:16 的比例不方便計算,為了使單位em/rem更直觀,CSS編寫者常常將頁面跟節點字體設為62.5%,比如選擇用rem控制字體時,先需要設置根節點html的字體大小,因為瀏覽器默認字體大小16px*62.5%=10px。這樣1rem便是10px,方便了計算。

5. 用em/rem定義尺寸的另一個好處是更能適應縮進/以字體單位padding或margin/瀏覽器設置字體尺寸等情況(因為em/rem相對於字體大小,會同步改變)。例如:p{ text-indent: 2em; }。

6. 使用rem單位的彈性布局在移動端也很受歡迎。

7. 其實在移動端使用所謂的彈性布局,是比較勉強的。移動端彈性布局流行起來的原因歸根結底是rem單位對於(根據屏幕尺寸)調整頁面的各元素的尺寸、文字大小時比較好用。其實,使用vw、vh等後起之秀的單位,可以實現完美的流式布局(高度和文字大小都可以變得「流式」),彈性布局就不再必要了。

結論

1.如果只做pc端,那麼靜態布局(定寬度)是最好的選擇;

2.如果做移動端,且設計對高度和元素間距要求不高,那麼彈性布局(rem+js)是最好的選擇,一份css+一份js調節font-size搞定;

3.如果pc,移動要兼容,而且要求很高那麼響應式布局還是最好的選擇,前提是設計根據不同的高寬做不同的設計,響應式根據媒體查詢做不同的布局。


推薦閱讀:

TAG:網頁設計 | 網頁 | Web開發 |