? ? ? ??寫在前面的話:隨著移動設備的逐漸普及和Web技術的發展,跨端的Web開發需求將會越來越大。如何在多種設備上進行跨端的界面適配呢?我們可以利用CSS3的Media Query來實現。本文主要介紹了移動開發和CSS3結合,來進行多種分辨率適配的例子。
? ? ??文中提到的響應式網頁設計(Responsive web design)是一種現代網頁設計方法,基于CSS3的媒介查詢(Media Query)特性使得網頁適應不同設備,即根據設備的分辨率和縮放自動重新布局。
? ? ?
? ? ??-----------
? ? ??譯自:[http://webdesignerwall.com/tutorials/responsive-design-in-3-steps](http://webdesignerwall.com/tutorials/responsive-design-in-3-steps)
? ? ??轉載請注明:來自蔣宇捷的博客([http://blog.csdn.net/hfahe](http://blog.csdn.net/hfahe))
? ? ??響應式網頁設計現在無疑是一件大事情。如果你還不了解響應式設計,可以看看我最近發表的[響應式站點列表](http://webdesignerwall.com/trends/inspiration-fluid-responsive-design)(譯者注:可以好好看看示例中的網站在不同分辨率下的展現方式)。對新手來說,[響應式設計](http://webdesignerwall.com/tutorials/responsive-design-with-css3-media-queries)可能有一點復雜,但是事實上比你想象的簡單。為了幫助你迅速的了解響應式設計,我起草了一篇快速教程。你可以在3個步驟中學習到響應式設計和媒介查詢(Media Queries)的基本原理(假定你了解基本的CSS知識)。
? ? ??**第一步:Meta標簽(查看[演示](http://webdesignerwall.com/demo/responsive-design/index.html))**
大多數移動瀏覽器將HTML頁面放大為寬的視圖(viewport)以符合屏幕分辨率。你可以使用視圖的meta標簽來進行重置。下面的視圖標簽告訴瀏覽器,使用設備的寬度作為視圖寬度并禁止初始的縮放。在<head>標簽里加入這個meta標簽。
~~~
<meta name="viewport" content="width=device-width, initial-scale=1.0">
~~~
IE8或者更早的瀏覽器并不支持Media Query。你可以使用media-queries.js或者respond.js來為IE添加Media Query支持。
~~~
<!--[if lt IE 9]>
<script src="http://css3-mediaqueries-js.googlecode.com/svn/trunk/css3-mediaqueries.js"></script>
<![endif]-->
~~~
? ? ??**第二步:HTML結構**
? ? ??在這個例子里,我有一個包括頭部、內容、側邊欄和頁腳的基本頁面布局。頭部有固定的高度180像素,內容容器是600像素而側邊欄是300像素。

? ? ??**第三步:媒介查詢-Media Queries**
? ? ??[CSS3 Media Query-媒介查詢](http://webdesignerwall.com/tutorials/css3-media-queries)是響應式設計的核心。它根據條件告訴瀏覽器如何為指定視圖寬度渲染頁面。
? ? ??當視圖寬度為小于等于980像素時,如下規則將會生效。基本上,我會將所有的容器寬度從像素值設置為百分比以使得容器大小自適應。

? ? ??然后為小于等于700像素的視圖指定#content和#sidebar的寬度為自適應并且清除浮動,使得這些容器按全寬度顯示。

? ? ??對于小于等于480像素(手機屏幕)的情況,將#header元素的高度設置為自適應,將h1的字體大小修改為24像素并隱藏側邊欄。

? ? ??你可以根據你的喜好添加足夠多的媒介查詢。我在示例中僅僅展示了3個媒介查詢。媒介查詢的目的在于為指定的視圖寬度指定不同的CSS規則,來實現不同的布局。媒介查詢可以寫在同一個或者單獨的樣式表中。
? ? ??**結論**
? ? ??這個教程想要為你展示響應式設計的基本原理。如果你想要更多進階的教程,請看看我之前的教程:[使用媒介查詢進行響應式設計](http://webdesignerwall.com/tutorials/responsive-design-with-css3-media-queries)。
- 前言
- AutoPager的簡單實現
- 利用CSS3特性巧妙實現漂亮的DIV箭頭
- IE9在Win7下任務欄新特性簡介
- 瀏覽器九宮格的簡單實現
- Raphael js庫簡介
- 使用CSS3構建Ajax加載動畫
- 用CSS3創建動畫價格表
- 用CSS3實現瀏覽器的縮放功能
- 用純CSS3實現QQ LOGO
- 用CSS3創建旋轉載入器
- 使用Javascript開發移動應用程序
- 用HTML5創建超酷圖像灰度漸變效果
- 使用CSS3創建文字顏色漸變(CSS3 Text Gradient)
- 僅用CSS創建立體旋轉幻燈片
- 如何創建跨瀏覽器的HTML5表單
- 用CSS3實現動畫進度條
- HTML5 Guitar Tab Player
- 奇妙的HTML5 Canvas動畫實例
- 談HTML5和CSS3的國際化支持
- 實現跨瀏覽器的HTML5占位符
- 前端開發必備工具:WhatFont Bookmarklet-方便的查詢網頁上的字體
- 使用HTML5和CSS3來創建幻燈片
- HTML5之美
- 如何使用HTML5創建在線精美簡歷
- 以小見大、由淺入深-談如何面試Javascript工程師
- 快速入門:HTML5強大的Details元素
- 用CSS3實現圖像風格
- HTML5視頻字幕與WebVTT
- 用純CSS3實現Path華麗動畫
- 用3個步驟實現響應式網頁設計
- 遇見CSS3濾鏡
- 關于CSS3濾鏡的碎念
- 用純CSS3繪制萌系漫畫人物動態頭像
- CSS3新的鼠標樣式介紹
- 用HTML5獻上愛的3D玫瑰
- 對HTML5 Device API相關規范的解惑
- 如何使用HTML5實現拍照上傳應用
- 2012第一季度國外HTML5移動開發趨勢
- HTML5新特性:范圍樣式
- 百度開發者大會-《用HTML5新特性開發移動App》PPT分享
- Chrome 19對于HTML5最新支持的動態:電池狀態API,全屏API,震動API,語音API
- 遇見Javascript類型數組(Typed Array)
- 用HTML5 Audio API開發游戲音樂
- 用HTML5實現人臉識別
- 用Javascript實現人臉美容
- Chrome 20對于HTML5最新支持的動態:顏色輸入,網絡信息API,CSS著色器
- 用HTML5實現手機搖一搖的功能
- 用HTML5實現iPad應用無限平滑滾動
- 用非響應式設計構建跨端Web App
- 了解SVG
- HTML5圖像適配介紹
- HTML5安全:內容安全策略(CSP)簡介
- HTML5安全:CORS(跨域資源共享)簡介
- 用CSS3 Region和3D變換實現書籍翻頁效果
- 談談移動App的思維誤區
- Chrome新特性:文件夾拖拽支持
- 《關注HTML5安全》
- HTML5安全風險詳析之一:CORS攻擊
- HTML5安全風險詳析之二:Web Storage攻擊
- HTML5圖像適配最新進展:響應式圖片規范草案
- HTML5移動Web App相關標準狀態及路線圖
- HTML5安全風險詳析之三:WebSQL攻擊
- Chrome引入WebRTC支持視頻聊天App
- HTML5安全風險詳析之四:Web Worker攻擊
- HTML5安全風險詳析之五:劫持攻擊
- HTML5安全風險詳析之六:API攻擊
- HTML5安全攻防詳析之七:新標簽攻擊
- 在iOS Safari中播放離線音頻
- 使用WebRTC實現遠程屏幕共享
- Firefox、Android、iOS遇見WebRTC
- HTML5光線傳感器簡介
- HTML5安全攻防詳析之八:Web Socket攻擊
- HTML5安全攻防詳析之完結篇:HTML5對安全的改進
- 激動人心!在網頁上通過語音輸入文字 - HTML5 Web Speech API介紹
- Web滾動性能優化實戰
- 用CSS3設計響應式導航菜單
- 用HTML5構建高性能視差網站
- 漫談@supports與CSS3條件規則
- HTML5下載屬性簡介
- 如何開發優秀的HTML5游戲?-迪斯尼《尋找奧茲之路》游戲技術詳解(一)
- 如何開發優秀的HTML5游戲?-迪斯尼《尋找奧茲之路》游戲技術詳解(二)
- 趨勢:Chrome為打包應用提供強大新特性
- 從HTML5移動應用現狀談發展趨勢
- 基于HTML5的Web跨設備超聲波通信方案