Web網頁布局的主要方式

一、靜態布局(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,移動要兼容,而且要求很高那么響應式布局還是最好的選擇,前提是設計根據不同的高寬做不同的設計,響應式根據媒體查詢做不同的布局。

 

參考文章: www.cnblogs.com/zhuzhenwei9…

轉載于:https://juejin.im/post/59f706a8f265da43094471a7

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/257158.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/257158.shtml
英文地址,請注明出處:http://en.pswp.cn/news/257158.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

HDU 3966 Aragorn's Story (樹鏈點權剖分,成段修改單點查詢)

題目鏈接&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid3966 樹鏈剖分的模版&#xff0c;成段更新單點查詢。熟悉線段樹的成段更新的話就小case啦。 1 //樹鏈剖分 邊權修改 單點查詢2 #include <iostream>3 #include <cstring>4 #include <algorithm&…

微信分享無響應的解決

微信分享無響應的解決 最近使用友盟的社會化分享&#xff0c;集成到程序中進行分享功能的開發。 可是一開始還是可以正常使用&#xff0c;今天突然發現微信分享&#xff08;好友分享和朋友圈分享&#xff09;均是點擊沒有響應&#xff0c;也就是點擊后&#xff0c;沒有任何回饋…

x64電腦連接x32共享打印機

下載64位打印機驅動到64位電腦&#xff0c;在連接32位共享打印機出錯時出現在本地尋找相關inf文件&#xff0c;此時將64位打印機驅動解壓(不在64位本地安裝)并找到相應inf文件&#xff0c;載入即可連接成功。

HTML中的br標簽講解(菜鳥)

br標簽&#xff1a;如何在HTML中換行&#xff1f;可以使用br標簽 1.br標簽作用&#xff1a;換行 2.br標簽格式&#xff1a;<br/> 3.br標簽的注意點&#xff1a; 3.1多個br標簽可以連續使用&#xff0c;使用了多少個br標簽就會換多少行 3.2由于HTML的作用就是用來給文本添…

Cocos2d-3.x版的HelloWorld工程分析 (二)

我們HelloWorld 從applicationDidFinishLaunching()后&#xff0c; 大部分人都會從這部分代碼開始研究&#xff0c;如果想要研究main函數 如何調用applicationDidFinishLaunching() 傳送門 http://blog.csdn.net/hiwoshixiaoyu/article/details/51472707 #include "App…

安卓中bundle的使用

Bundle類用作攜帶數據&#xff0c;它類似于Map&#xff0c;用于存放key-value形式的值&#xff0c;相對于Map&#xff0c;它提供了各種常用類型的putXxx()/getXxx()方法&#xff0c;Bundle的內部實際上是使用了HashMap類型的變量來存放PutXxx()方法存入的值。 SDK里是這樣描述&…

NO.1 python_人工智能_學習路線

***##學習路線&#xff1a;* 1.python基礎 計算機組成原理、python開發環境、python變量、流程控制語句、文件操作、異常處理、模塊與包、飛機大戰游戲制作等 2.python高級應用 網絡編程、并發編程、數據庫編程、正則表達式、Linux系統應用、函數的高級應用、python的語法進階…

wds+mdt 分布式自動部署 操作系統

一、 安裝準備 1、工具的準備 首先介紹本次項目所涉及到的內容&#xff1a; MDT Microsoft Deployment Toolkit 2012&#xff08;簡稱MDT 2012&#xff09;是微軟最新一代部署工具&#xff0c;通過它可以自動完成桌面和服務器部署的推薦操作進程和工具&#xff0c;MDT主要…

iOS開發網絡篇—數據緩存

iOS開發網絡篇—數據緩存 一、關于同一個URL的多次請求 有時候&#xff0c;對同一個URL請求多次&#xff0c;返回的數據可能都是一樣的&#xff0c;比如服務器上的某張圖片&#xff0c;無論下載多少次&#xff0c;返回的數據都是一樣的。 上面的情況會造成以下問題 &#xff08…

[WinError 10061] 由于目標計算機積極拒絕,無法連接錯誤解決辦法

爬蟲的時候會經常出現"[WinError 10061] 由于目標計算機積極拒絕&#xff0c;無法連接"錯誤這種情況&#xff0c;有可能是LAN口設置不正確 我是在爬取全國天氣情況的時候出現的這種錯誤&#xff0c;后面調了以后可以了1.控制面板——網絡和 Internet—— Internet選項…

Chrome瀏覽器設置小窗口視頻

快捷工具先安裝1.28版本后用1.31版本替換&#xff0c;以實現視頻彈窗和雙擊關閉標簽頁功能。 首先下載Chrome擴展快捷工具1.28版的CRX安裝包&#xff1a;http://pan.baidu.com/s/1pJ4T4td&#xff1b; 然后拖放到chrome擴展管理頁面中安裝。 接著&#xff0c;下載打包好的快捷…

這門課有什么用?

每個老師都苦惱于學生常問的問題&#xff1a;“某某課學了有什么用&#xff1f;”老師費勁巴拉解釋一通&#xff0c;結果還是&#xff1a;然并卵。 一門課有什么用&#xff0c;很難解釋得令人信服&#xff0c;因為這和人的認知水平有關。認知水平達不到&#xff0c;解釋的多深入…

NO.1_python_scrapy組成爬取多頁數據連接數據庫配置文件書寫

scrapy框架組成及各部分作用 item pipelines: 用于存放需要存儲數據的數據模型&#xff0c;一般格式為&#xff1a; #需要存儲多少中類型的數據就寫多少行&#xff0c;一般是key_value組合 數據名稱&#xff0c;即key scrapy.Field()spiders 用于解析返回來的response im…

“智云大咖秀”:大咖攝影師談驚艷亮相的“大咖級”設備

古人云&#xff0c;善書者不擇筆。 古人又云&#xff0c;工欲善其事必先利其器。 古人很矛盾。 這兩句話如果用在影像創作這個領域&#xff0c;可以說都有道理&#xff1a;沒有好的設備&#xff0c;創意大師一樣能夠拍出足夠驚艷的作品&#xff1b;有足夠強的設備&#xff0c;但…

英語 用on還是/at/還是in

in prep. 1. [表示地點、場所、位置等]在…里面&#xff1b;在…內部&#xff1b;在…上&#xff1a;例句: in the room 在房間里 2. [表示時間]在…期間&#xff1b;在(一段時間)以內&#xff1b;過…之久&#xff1a;例句: in summer 在夏天in 3. [表示狀態]在…狀態中&…

js編寫簡易返回頂部按鈕

之前ui設計讓我做個返回頂部的按鈕,我一定頭緒都沒,感覺真要加上這個功能,自己編寫就得一個下午,工作量大為由,所以就推脫了; 當靜下心,有時間搗鼓之后才發現原來so easy!!! 以下是我的js代碼,不足之處還請博友們批評指正; //原生js操作代碼  function scrolls(){   v…

NO.2_python_scrapy_反爬蟲(隨機請求頭IP代理)取消鏈接去重

1.隨機請求頭 # -*- coding: utf-8 -*- """ 所有請求頭的USER_AGENTS網址 http://www.useragentstring.com/pages/useragentstring.php?nameAll """ import json import random import requestsUSER_AGENTS [Mozilla/5.0 (Windows NT 10.0; W…

Cobub無碼埋點關鍵技術的實現

隨著大數據時代的到來&#xff0c;數據采集也已經變的越來越重要。前端埋點作為一個比較成熟的數據接入手段被廣泛應用著。目前埋點分為兩種方式&#xff0c;有碼與無碼埋點。有碼埋點比較容易理解&#xff0c;即調用SDK的API&#xff0c;在代碼中插入埋點的相關代碼&#xff0…

Dedesql數據庫類詳解(二次開發必備教程)(轉)

http://www.dedecms.com/help/development/2009/1028/1076.html 織夢DedeCMS的二次開發不僅僅是會寫寫織夢的標簽&#xff0c;會制作織夢的模板。很多時候&#xff0c;我們需要對織夢DedeCMS的數據庫進行查詢、插入、刪除等等之類的操作&#xff0c;進行這一類的操作之前&#…

裝系統換固態硬盤方法

1、將買回的固態硬盤直接換上電腦的原先機械硬盤 2、或者將自己的光驅拆卸&#xff0c;將固態硬盤裝上去 3、電腦進入boss 界面&#xff0c;找到boot(引導)欄&#xff0c;找到自己的u盤&#xff0c;進入后先分區&#xff0c;然后再重啟&#xff0c; 然后再進入BOSS進入U盤里&…