吳永娜 楊春旭 許佳南



摘要:布局是網頁設計中的一個關鍵環節,訪問網頁的終端除了PC機,還有大量移動端設備,針對這些分辨率各不相同的設備,css3采用了不同的方法來解決,該文通過案例分析在PC端及移動端常見的布局模式的設計及其關鍵問題。
關鍵詞:html5; css3; 自適應;靜態布局;彈性布局
中圖分類號:TP393.092? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2019)28-0242-03
1引言
訪問一個網站的網頁終端除了PC機,還可能是各種智能移動設備,如手機、Ipad等,這些設備的屏幕分辨率各不相同,如何在不同屏幕分辨率下完美地展現網頁,是前端開發者需要解決的一個關鍵技術問題。本文通過具體案例分析這幾種布局技術的設計過程及其關鍵問題。
2 常見布局技術
目前主流的布局模式有如下三種:
靜態布局、響應式布局、彈性布局
(1)靜態(static)布局:靜態布局是針對PC端的傳統web設計,一般設計一個具有固定寬度的居中布局,以精確地展示網頁。當瀏覽器窗口縮小時,頁面內容會被遮擋,呈現橫豎向滾動條。
(2)彈性(flexbox)布局:為了實現響應式布局,CSS3提供的一種最新布局模式,它提供更加高效的方式來對布局容器的子元素進行排列、對齊和分配空白空間。
(3)響應式(responsive)布局:同一網站,一個web設計能兼容多個終端,具有多個不同的布局模式,通過CSS3中的Media Query(媒介查詢),采用柵格化方式,分別為不同的屏幕分辨率定義布局。
3 靜態布局
這是PC端最常見的布局模式,一般設計一個具有固定寬度的居中布局,以精確地展示網頁。當瀏覽器窗口縮小時,頁面內容會被遮擋,呈現橫豎向滾動條。基本可分為:
3.1 一列布局
一列自適應居中,這是最簡單的一種方式,其頁面內容區域有一個固定寬度,在瀏覽器窗口中自適應居中,其實現辦法:頁面內容區域box{width:自定義寬度;margin:0 auto;},當width設為100%時,則頁面布滿整個瀏覽器窗口,寬度多以目前主流的分辨率來判斷,建議目前以1200為判斷基準。
3.2兩列布局
兩列布局一般常見于博客,其中一列固定寬,一列自適應。
3.2.1左邊固定,右邊自適應的兩欄布局
以一個左邊固定寬200px,右邊自適應的布局為例,用如下方式修改兩個
由于左邊
3.2.2左邊自適應,右邊固定的兩欄布局
以一個右邊固定寬度為100px,左邊隨著瀏覽器的寬度自適應為例,先在頁面生成兩個盒子,
需要注意兩點:(1)因為定位的特性,必須先生成右邊的
(2)左邊自適應的
3.3 三列布局
也稱為雙飛翼布局,中間列自適應寬+左右列固定寬;中間列寬度自適應,放置主體內容,所以需要讓中間列在瀏覽器中優先渲染,因此,在
中加入如下代碼:(1)當子元素處于浮動狀態時,設置負margin>=子元素寬度時,子元素會疊蓋到兄弟元素之上;因此sidebox-left設置為margin-left:-100%,以讓其位置出現在main 元素的左邊,同理,sidebox-right設置為margin-right:-300px;以讓其位置出現在main元素的右邊;
(2)main元素添加padding-left和padding-right屬性后,根據盒子模型的計算公式,main元素的總寬度會超過100%,因此必須加上box-sizing:border-box;語句,使其變成框架盒子,以保證其總寬度為100%。
完成后,在瀏覽器中的效果如下圖所示:
4 彈性布局
針對越來越多用戶用移動端訪問網頁的情況,W3C提出了一種新的方案:彈性(flex)布局,可以簡便、完整、響應式地實現各種頁面布局,目前,它已得到大部分瀏覽器的支持,這意味著,現在就能很安全地使用這種方案,以適應不同分辨率用戶的需求。它用來為盒狀模型提供最大的靈活性,任何一個容器都可以指定為flex布局。
如果把ul的width改為100px,則顯示效果如圖3,每一個li項會自動縮小寬度以適應總寬度;如果把ul的width改為400px,則默認顯示效果如圖4;如果ul的width保持400px不變,修改justify-content:space-around,則自動把剩余空間平均分配給了每個項目,其顯示效果如圖5。
除以上屬性外,還可以利用flex-direction設置項目的不同排列方向,利用flex-wrap設置項目的換行方式等,因此,彈性(flex)布局可以靈活地應用于不同分辨率的不同元素布局中。需要注意,設為flex布局后,子元素的float、clear和vertical-align屬性都會失效。
5 結束語
DIV+CSS3布局模式中,除了上面述及的靜態布局和彈性布局,還有響應式(responsive)布局,其原理是通過CSS3中的Media Query(媒介查詢),采用柵格化方式,分別為不同的屏幕分辨率定義布局,適用于一個web設計兼容多個終端的環境。
三者相比之下,彈性(flex)布局能更好地操作和控制內部的子元素,不用關心容器盒子是否有足夠的空間;每個子元素可以自動分配到容器的寬高比例;當窗口或容器大小改變時,不用擔心子元素會破壞布局;無須修改結構就可以設置其排列方式為行或列,其靈活性更強。隨著html5+CSS3新標準的出現及普及,網頁自適應布局是目前前端設計技術的關鍵問題,開發人員必須要在充分掌握基礎技術的條件下,進行多編碼、多測試、多維護的工作,使開發出來的網頁性能、受用戶歡迎的程度達到最佳的狀態。
參考文獻:
[1] 陳承歡.html5+css3網頁設計與制作實用教程[M].北京:人民郵電出版社,2018.
[2] 周美玲,陳書理.CSS3和HTML5的優勢及其在網頁布局中的應用[J].開封大學學報,2017,31.
[3] 岳丹丹.網頁浮動布局方式和伸縮盒布局方式的比較研究[J].興義民族師范學院學報,2016.
[4] 江玉珍.基于終端自適應的網頁設計教學拓展[J].計算機時代,2018.
【通聯編輯:代影】