搜尋
首頁web前端H5教程響應式和自適應有什麼區別

響應式和自適應有什麼區別

May 10, 2018 pm 03:43 PM
什麼差別

先讓大家體驗一下響應式和自適應的差異,請放大縮小螢幕嘗試 
自適應的體驗http://m.ctrip.com/html5/  

響應式的體驗http://www.php.cn/

整理了幾篇自適應和響應式的文章,摘抄並修改了一下,請大家欣賞: 
起初,網頁設計者都會設計固定寬度的頁面,最開始的電腦顯示器解析度種類不多,因為當時電腦本來就少,即使有變化也是800 850 870 880。例如 開源中國的網頁就是固定寬度為998來客製的。至於為什麼是 998,
後來隨著顯示器越來越多,以及筆記本的普及,這種方式的頁面出現了問題。於是出現了一種新的佈局方式寬度自適應佈局。我們平時談論的自適應佈局,大多指的是寬度自適應佈局。
在這個佈局下,出現了兩派: 
百分比寬度佈局

串流佈局

題主說的是第一派,寬度使用百分比,文字使用em,現在也很多開始使用rem了,也就是所謂的高清方案。第二派的佈局以 iGoogle 為代表(已經停止)。 
一開始沒有響應式佈局這個詞語,但慢慢出現了一個詞-漸進增強,新詞的出現總是伴隨的舊詞一起出現。就好比 3G 出現之前,沒人管自己的手機叫 2G,所以,3G 和 2G 兩個字是一起出現的(技術上當然2G技術先出現)。同理,漸進增強出現後,另一個字「優雅降級」也隨之出現了。 
字的意思可以自己看 wiki、Google,我只在這兒舉一個例子,gmail 和 qqmail。 
他兩個的寬度都是 100%,都是自適應。但是: 
qqmail 就是css hack 的完美體現,你用任何一個瀏覽器,幾乎可以看到同一個樣子的郵箱,騰訊的前端工程師們用各種css hack 技術來展示郵箱頁面,為的是統一的使用者體驗。 
而 gmail 使用了漸進增強,你的瀏覽器越強,你看到的效果就越好,使用者體驗就越好。 
再後來,就是大家都熟知的 Google 發佈了 android,於是網路大戰從 PC 打到了手機。還有 HTML5 標準的發布。 
手機雖然螢幕變小了,但卻提供了更豐富的功能。還記得以前用諾基亞上 QQ 的事兒嗎?我們造訪的是 3g.qq.com,當時我使用的是中興的手機,造訪 wap.qq.com,後來的智慧型手機都是造訪 m.qq.com。
不禁有人問「真的需要為每個手機分別設計一個網頁嗎?」、「真的需要為手機和電腦設計不同的網頁嗎?」,解決方法當然有很多種,可以看看css zen garden(《Css秘密花園》還是很不錯的一本書.
最終的解決方案勝出者是響應式佈局。 
響應式佈局被大家熟知的一個重要原因就是twitter 開源了bootstrap。Google 第一次完成了從先驅到烈士。
自適應是為了解決如何才能在不同大小的裝置上呈現同樣的網頁

手機的螢幕比較小,寬度通常在600像素以下;PC的螢幕寬度,一般都在1000像素以上(目前主流寬度是1366×768),有的還達到了2000像素以上(目前主流寬度是1366×768),有的還達到了2000像素。容易的事。同時要維護好幾個版本,而且如果一個網站有多個portal(入口),會大大增加架構設計的複雜度。 ”,讓同一張網頁自動適應不同大小的螢幕,根據螢幕寬度,自動調整網頁內容大小

但是無論怎樣,他們主體的內容和佈局是沒有改變的。進行適配,但是會感覺在小螢幕上查看,內容過於擁擠,響應式正是為了解決這個問題而衍生出來的概念。的內容可能會有所變動。

如果螢幕寬度在600像素到1300像素之間,則6張圖片分成兩行。

如果螢幕寬度在400像素到600像素之間,則導覽列會移到網頁頭部。

如果螢幕寬度在400像素以下,則6張圖片分成三行。

mediaqueri.es上面有更多這樣的例子。

說了一大堆其實大家可能更多的是關心如何實現。下面來聊聊實作方式:

1.允許網頁寬度自動調整

「自適應網頁設計」到底是怎麼做到的?其實並不難。

首先,在網頁程式碼的頭部,加入一行viewport元標籤。

print?
<meta name=“viewport” content=“width=device-width, initial-scale=1” />
<meta name="viewport" content="width=device-width, initial-scale=1" />

viewport是網頁預設的寬度和高度,上面這行程式碼的意思是,網頁寬度預設等於螢幕寬度(width=device-width),原始縮放比例(initial-scale=1)為1.0 ,即網頁初始大小佔螢幕面積的100%。

所有主流瀏覽器都支援這個設置,包括IE9。對於那些老式瀏覽器(主要是IE6、7、8),需要使用css3-mediaqueries.js。

print?
<!–[if lt IE 9]>
    <script src=“http://css3-mediaqueries-js.googlecode.com/svn/trunk/css3-mediaqueries.js”></script>
  <![endif]–>
<!--[if lt IE 9]>
    <script src="http://css3-mediaqueries-js.googlecode.com/svn/trunk/css3-mediaqueries.js"></script>
  <![endif]-->

2、盡量少使用絕對寬度

由於網頁會根據螢幕寬度調整佈局,所以不能使用絕對寬度的佈局,也不能使用具有絕對寬度的元素。這一條非常重要。

具體地說,CSS程式碼不能指定像素寬度:

print?
width:xxx px;  
width:xxx px;

透過指定百分比寬度來取代:同時也可以配合css的cal,進行計算寬度

width: xx%;  
width: xx%;

print?
width:auto;  
width:auto;

3、相對大小的字體

字體也不能使用絕對大小(px),而只能使用相對大小(em)或高清方案(rem),rem不限於字體大小,前面的寬度width也可以使用,取代百分比。

print?
body {  
    font: normal 100% Helvetica, Arial, sans-serif;  
  }  
body {
    font: normal 100% Helvetica, Arial, sans-serif;
  }

上面的程式碼指定,字體大小是頁面預設大小的100%,即16像素。

print?
h1 {  
    font-size: 1.5em;   
  }  
h1 {
    font-size: 1.5em; 
  }

然後,h1的大小是預設大小的1.5倍,即24像素(24/16=1.5)。

print?
small {  
  font-size: 0.875em;  
}  
  small {
    font-size: 0.875em;
  }

small元素的大小是預設大小的0.875倍,即14像素(14/16=0.875)。

4、流動佈局(fluid grid)

「流動佈局」的意思是,各個區塊的位置都是浮動的,不是固定不變的。更多內容請查看流動版面的文章。

print?
.main {  
    float: right;  
    width: 70%;   
  }  
  .leftBar {  
    float: left;  
    width: 25%;  
  }  
.main {
    float: right;
    width: 70%; 
  }
  .leftBar {
    float: left;
    width: 25%;
  }

float的好處是,如果寬度太小,放不下兩個元素,後面的元素會自動滾動到前面元素的下方,不會在水平方向overflow(溢出),避免了水平滾動條的出現。

另外,絕對定位(position: absolute)的使用,也要非常小心。

5、選擇載入CSS

「自適應網頁設計」的核心,就是CSS3引進的Media Query模組。

它的意思是,自動探測螢幕寬度,然後載入對應的CSS檔案。

print?
<link rel=“stylesheet” type=“text/css”
    media=“screen and (max-device-width: 400px)”
    href=“tinyScreen.css” />
<link rel="stylesheet" type="text/css"
    media="screen and (max-device-width: 400px)"
    href="tinyScreen.css" />


上面的程式碼意思是,如果螢幕寬度小於400像素(max-device-width: 400px),就載入tinyScreen.css檔。

print?
<link rel=“stylesheet” type=“text/css”
    media=“screen and (min-width: 400px) and (max-device-width: 600px)”
    href=“smallScreen.css” />
<link rel="stylesheet" type="text/css"
    media="screen and (min-width: 400px) and (max-device-width: 600px)"
    href="smallScreen.css" />

如果螢幕寬度在400像素到600像素之間,則載入smallScreen.css檔案。

除了用html標籤載入CSS文件,還可以在現有CSS文件中載入。

print?
@import  url(“tinyScreen.css”) screen and (max-device-width: 400px);  
 @import  url("tinyScreen.css") screen and (max-device-width: 400px);

6、CSS的@media規則

同一個CSS檔案中,也可以根據不同的螢幕分辨率,選擇應用不同的CSS規則。

print?
@media  screen and (max-device-width: 400px) {  
    .column {  
      float: none;  
      width:auto;  
    }  
    #sidebar {  
      display:none;  
    }  
  }  
@media  screen and (max-device-width: 400px) {
    .column {
      float: none;
      width:auto;
    }
    #sidebar {
      display:none;
    }
  }

上面的程式碼意思是,如果螢幕寬度小於400像素,則column區塊取消浮動(float:none)、寬度自動調整(width:auto),sidebar區塊不顯示(display:none)。

7、圖片的自適應(fluid image)

除了佈局和文本,」自適應網頁設計」還必須實現圖片的自動縮放。

這只要一行CSS程式碼:

print?
img { max-width: 100%;}  
img { max-width: 100%;}

這行程式碼對於大多數嵌入網頁的影片也有效,所以可以寫成:

print?
img, object { max-width: 100%;}  
img, object { max-width: 100%;}

舊版的IE不支援max -width,所以只好寫成:

print?
img { width: 100%; }  
img { width: 100%; }

此外,windows平台縮放圖片時,可能會出現影像失真現象。這時,可以嘗試使用IE的專有指令:

print?
img { -ms-interpolation-mode: bicubic; }  
img { -ms-interpolation-mode: bicubic; }

或者,Ethan Marcotte的imgSizer.js。

print?
addLoadEvent(function() {  
    var imgs = document.getElementById(“content”).getElementsByTagName(“img”);  
    imgSizer.collate(imgs);  
  });  
addLoadEvent(function() {
    var imgs = document.getElementById("content").getElementsByTagName("img");
    imgSizer.collate(imgs);
  });

不過,有條件的話,最好還是根據不同大小的螢幕,載入不同解析度的圖片。有很多方法可以做到這一條,伺服器端和客戶端都可以實現。

以上是響應式和自適應有什麼區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
了解H5代碼:HTML5的基本原理了解H5代碼:HTML5的基本原理Apr 17, 2025 am 12:08 AM

HTML5是構建現代網頁的關鍵技術,提供了許多新元素和功能。 1.HTML5引入了語義化元素如、、等,增強了網頁結構和SEO。 2.支持多媒體元素和,無需插件即可嵌入媒體。 3.表單增強了新輸入類型和驗證屬性,簡化了驗證過程。 4.提供了離線和本地存儲功能,提升了網頁性能和用戶體驗。

H5代碼:Web開發人員的最佳實踐H5代碼:Web開發人員的最佳實踐Apr 16, 2025 am 12:14 AM

H5代碼的最佳實踐包括:1.使用正確的DOCTYPE聲明和字符編碼;2.採用語義化標籤;3.減少HTTP請求;4.使用異步加載;5.優化圖像。這些實踐能提升網頁的效率、可維護性和用戶體驗。

H5:網絡標準和技術的發展H5:網絡標準和技術的發展Apr 15, 2025 am 12:12 AM

Web标准和技术从HTML4、CSS2和简单的JavaScript演变至今,经历了显著的发展。1)HTML5引入了Canvas、WebStorage等API,增强了Web应用的复杂性和互动性。2)CSS3增加了动画和过渡功能,使页面效果更加丰富。3)JavaScript通过Node.js和ES6的现代化语法,如箭头函数和类,提升了开发效率和代码可读性,这些变化推动了Web应用的性能优化和最佳实践的发展。

H5是HTML5的速記嗎?探索細節H5是HTML5的速記嗎?探索細節Apr 14, 2025 am 12:05 AM

H5不僅僅是HTML5的簡稱,它代表了一個更廣泛的現代網頁開發技術生態:1.H5包括HTML5、CSS3、JavaScript及相關API和技術;2.它提供更豐富、互動、流暢的用戶體驗,能在多設備上無縫運行;3.使用H5技術棧可以創建響應式網頁和復雜交互功能。

H5和HTML5:網絡開發中常用的術語H5和HTML5:網絡開發中常用的術語Apr 13, 2025 am 12:01 AM

H5與HTML5指的是同一個東西,即HTML5。 HTML5是HTML的第五個版本,帶來了語義化標籤、多媒體支持、畫布與圖形、離線存儲與本地存儲等新功能,提升了網頁的表現力和交互性。

H5指的是什麼?探索上下文H5指的是什麼?探索上下文Apr 12, 2025 am 12:03 AM

H5referstoHTML5,apivotaltechnologyinwebdevelopment.1)HTML5introducesnewelementsandAPIsforrich,dynamicwebapplications.2)Itsupportsmultimediawithoutplugins,enhancinguserexperienceacrossdevices.3)SemanticelementsimprovecontentstructureandSEO.4)H5'srespo

H5:工具,框架和最佳實踐H5:工具,框架和最佳實踐Apr 11, 2025 am 12:11 AM

H5開發需要掌握的工具和框架包括Vue.js、React和Webpack。 1.Vue.js適用於構建用戶界面,支持組件化開發。 2.React通過虛擬DOM優化頁面渲染,適合複雜應用。 3.Webpack用於模塊打包,優化資源加載。

HTML5的遺產:當前了解H5HTML5的遺產:當前了解H5Apr 10, 2025 am 09:28 AM

HTML5hassignificantlytransformedwebdevelopmentbyintroducingsemanticelements,enhancingmultimediasupport,andimprovingperformance.1)ItmadewebsitesmoreaccessibleandSEO-friendlywithsemanticelementslike,,and.2)HTML5introducednativeandtags,eliminatingthenee

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)