html5/css3響應式布局介紹

轉載鏈接:http://www.51xuediannao.com/html+css/htmlcssjq/694.html

html5/css3響應式布局介紹

html5/css3響應式布局介紹及設計流程,利用css3的media query媒體查詢功能。移動終端一般都是對css3支持比較好的高級瀏覽器不需要考慮響應式布局的媒體查詢media query兼容問題

一個普通的自適應顯示的三欄網頁,當你用不同的終端來查看這個頁面的時候,他會根據幾種終端來顯示不同的樣式,在電腦上是三列,在pad上應該也是 三列,在大屏手機上是三行,在屏幕小于320的手機上只顯示主要內容,隱藏掉了次要元素。(這里關于響應式布局還有個比較好的消息,就是拖動瀏覽器也可以 觸發判斷條件,測試的時候你不需要去找一堆手機,只要把自己的瀏覽器窗口縮小到一定尺寸就可以了。)

我們認識下media query屬性吧。

  1. @media screen and (min-width: 320px) and (max-width : 479px)

就從這個條件語句開始介紹,media屬性后面跟著的是一個 screen 的媒體類型(上面說過的十種媒體類型之一)。然后用 and 關鍵字來連接條件(其他關鍵字還有 not, only,看字面大家能理解,就不多說。),然后括號里就是一個媒體查詢語句,稍微懂點css的同學都能看懂,這個條件語句意思是在大于320小于479 的分辨率下所激活的樣式表。

這個語句,就是響應式布局的基礎應用了。在判斷終端分辨率大小之后,賦予不同的樣式進去,就像我們的例子里

  1. @media screen and (max-width : 320px){
  2. body{...}
  3. }
  4. @media screen and (min-width: 800px) and (max-width: 1024px){
  5. body{...}
  6. }

至于要判斷多少種分辨率,完全取決于你產品的需求,常見的分辨率有手機,平板(注意這些終端是存在 橫屏 豎屏 區別的,這個下一篇里提),桌面顯示器。自己為自己所面對的終端定制樣式。

一般大于960的顯示器都可以用默認樣式而不必在媒體查詢里判斷了。有一種情況除外,就是高像素比的終端,比如 iphone4以上的retina屏,一個iphone5的小小的屏幕(iphone的屏幕是真小啊),他的分辨率竟然達到了1136*640,幾乎等于 一個筆記本的分辨率。你在這樣小的物理顯示界面打開一個網頁,他用1136的分辨率來顯示,結果就是所有元素小的可憐。

在面對這種分辨率精細的終端,我們有另外一個條件查詢語句 device-pixel-ratio。

比如例子里的

  1. @media only screen and (-moz-min-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2)

就是判斷終端的像素比是2的話,所渲染的樣式。iphone4以上像素比是2,高分辨率Andriod設備像素比是1.5,例子里只有像素比為2的查詢,1.5的或者其他比例方法一樣,前面用的是幾種瀏覽器的私有屬性,最后一種是通用屬性,

  1. @media only screen and (-moz-min-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2)

等于

  1. @media only screen and (min-device-pixel-ratio: 2)

為了一些版本的兼容性,不得已寫的長了。

  1. body{
  2. font-size:24px;
  3. }
  4. .box2{
  5. background: url(d/20.png) #ccc;
  6. background-size:50%;
  7. }

在像素比為2的終端里這樣寫的目的,就是讓他顯示的更容易識別,一般來說顯示一張1px的背景圖片,我們要準備一張2px的,然后再background-size:50%這樣。1.5像素比同例。

比如上面的demo,如果你用iphone4以上的蘋果手機來看,中間的背景圖片應該是顯示“2.0像素比”。

這里也暴露了響應式一個很大的缺點:需要多做若干背景圖(作為內容顯示的圖片暫時無視,彈性圖片與彈性字體,下次單獨寫一篇介紹博文介紹)。

對于media query的兼容性,我想不是很重要,因為很少有終端自帶IE9以下的瀏覽器。基本都是高級瀏覽器。如果特殊需要,可以下載一個兼容的JS文件

  1. <!--[if lt IE 9]>
  2. <scriptsrc="http://css3-mediaqueries-js.googlecode.com/svn/trunk/css3-mediaqueries.js"></script>
  3. <![endif]-->

以條件注釋的方式加在文件里。

=========================================

html5/css3響應式頁面的設計流程

第一步:確定需要兼容的設備類型、屏幕尺寸

通過用戶研究,了解用戶使用的設備分布情況,確定需要兼容的設備類型、屏幕尺寸。

設備類型:包括移動設備(手機、平板)和pc。對于移動設備,設計和實現的時候注意增加手勢的功能。

屏幕尺寸:包括各種手機屏幕的尺寸(包括橫向和豎向)、各種平板的尺寸(包括橫向和豎向)、普通電腦屏幕和寬屏。

需要考慮的問題:

  • 某個頁面進行響應式設計時其適用的尺寸范圍是哪些?比如,1688搜索結果頁面,跨度可以從手機到寬屏,而1688首頁,由于結構過于復雜,想直接遷移到手機上,不太現實,不如直接設計一個手機版的首頁。
  • 結合用戶需求和實現成本,對適用的尺寸進行取舍。比如一些功能操作的頁面,用戶一般沒有在移動端進行操作的需求,沒有必要進行響應式設計。

第二步:制作線框原型

針對確定下來的幾個尺寸分別制作不同的線框原型,需要考慮清楚不同尺寸下,頁面的布局如何變化,內容尺寸如何縮放,功能、內容的刪減,甚至針對特殊的環境作特殊化的設計等。這個過程需要設計師和前端開發人員保持密切的溝通。

第三步:測試線框原型

將圖片導入到相應的設備進行一些簡單的測試,可幫助我們盡早發現可訪問性、可讀性等方面存在的問題。

第四步:視覺設計

注意,移動設備的屏幕像素密度與傳統電腦屏幕不一樣,在設計的時候需要保證內容文字的可讀性、控件可點擊區域的面積等。

第五步:前端實現

與傳統的web開發相比,響應式設計的頁面由于頁面布局、內容尺寸發生了變化,所以最終的產出更有可能與設計稿出入較大,需要前端開發人員和設計師多溝通。

(責任編輯:懶人建站)


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

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

相關文章

人際關系十大要訣

【一表人才】 所謂“一表人才”&#xff0c;就是說當你與陌生人第一次見面時給對方留下的第一印象&#xff0c;我們都知道第一印象很重要&#xff0c;要給對方留下好的印象&#xff0c;特別是要讓對方在最短的時間記住你。那么我們自身的儀表、行為舉止都很重要&#xff1b;我們…

MobX 上手指南,寫 Vue 的感覺?

之前用 Redux 比較多&#xff0c;一直聽說 Mobx 能讓你體驗到在 React 里面寫 Vue 的感覺&#xff0c;今天打算嘗試下 Mobx 是不是真的有寫 Vue 的感覺。題外話在介紹 MobX 的用法之前&#xff0c;先說點題外話&#xff0c;我們可以看一下 MobX 的中文簡介。在 MobX 的中文網站…

ansible中yaml語法應用

4、yaml語法應用 ansible的playbook編寫是yaml語言編寫&#xff0c;掌握yaml語法是編寫playbook的必要條件&#xff0c;格式要求和Python相似&#xff0c;具體教程參考如下yaml語言教程 附上一個yaml文件轉js格式文件鏈接在線免費yaml內容轉json格式 4.1、 ansible中的yaml語法…

中興a2018拆機圖片_中興天機拆機步驟詳解【圖文】

中興天機上市時有兩款&#xff0c;黑色和白色。黑色的缺點是外觀過于傳統&#xff0c;并不是很適合年輕人使用&#xff0c;但是其推出白色款卻很好的解決了這個問題。中興天機的整體性質與性價比完美的拼過了 小米 3等同時上線的手機產品。中興天機價格在1799左右&#xff0c;小…

網絡視頻貼片廣告全面推行第三方監測

視頻網站優酷與國際調研機構尼爾森聯合對外宣布&#xff1a;針對優酷視頻貼片廣告全面推行第三方監測。這是視頻行業首次倡導廣告投放數據透明化的一大舉措。  近年來&#xff0c;網絡視頻已經成為廣告主營銷的一大選擇。隨著廣告主投放額度不斷加大&#xff0c;廣告主對視頻…

css3動畫事件—webkitAnimationEnd

轉載鏈接&#xff1a;http://www.jb51.net/css/72443.html 用css3的animation完成一個動畫&#xff0c;當只有這個動畫完成時才執行令一個事件&#xff0c;比如讓動畫保持在終止的狀態或其他一些事件。我們該怎么辦呢。 第一種方法&#xff1a; 用計時器&#xff0c;設定一個…

(送書和紅包)快人一步,掌握前端函數式編程

大家好&#xff0c;我是若川。上周末送出了3本新書和若干紅包&#xff0c;抽獎名單已公布。本周又爭取到了4本《前端函數式編程》書籍包郵送給大家&#xff0c;抽獎規則見文末&#xff0c;與以往不同的是除了關鍵詞、留言、在看抽獎外&#xff0c;還有最早關注獎&#xff0c;歡…

js split參數為無效字符_js使用split函數按照多個字符對字符串進行分割的方法

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":5,"count":5}]},"card":[{"des":"阿里云函數計算(Function Compute)是一個事件…

Windows下訪問VirtualBox的mysql服務

由于好長時間沒有在windows下使用mysql&#xff0c;現在出現好多選項&#xff0c;而且使用sqlyog連接總是出現1045錯誤&#xff0c;所以在虛擬機Ubuntu下安裝mysql進行訪問&#xff0c;但是想用win下面vscode進行開發&#xff0c;就有了Windows下訪問VirtualBox的mysql服務的想…

JavaScript操作表格進行拖拽排序

<js-dodo-table- Drag and Drop JQuery plugin>以上插件可對table進行排序&#xff0c;拖動&#xff01; 例如有下面一個樣子的id為table的表格&#xff1a; <table id"table"cellspacing"0"cellpadding"2"><tr id"1"…

UBUNTU 用戶及用戶組管理 修改用戶和主機名

轉載鏈接&#xff1a;http://blog.sina.com.cn/s/blog_66439a3e0101dm1g.html 一、用戶及用戶組管理 創建組&#xff1a; $sudo addgroup ccache 創建用戶&#xff1a; $sudo useradd ccache -g ccache -M 創新wfz用戶并創建HOME目錄&#xff0c;指定用戶組為ccache $sudo u…

ping -a 獲取不到主機名_網絡測試命令——PING

命令功能&#xff1a;Linux系統和windows系統的ping命令是常用的網絡命令&#xff0c;它通常用來測試與目標主機的連通性&#xff0c;這樣我們就可以根據它ping輸出的信息來確定目標主機是否可訪問(但這不是絕對的)。有些服務器為了防止通過ping探測到&#xff0c;通過防火墻設…

寫在2021: 值得關注/學習的前端框架和工具庫

前言最近在知乎看到了這么個問題&#xff1a;學完Vue還有必要學習React和Node嗎&#xff1f;[1]&#xff0c; 有很奇妙的感覺&#xff0c;因為我在最開始入門前端時&#xff0c;也是以Vue入的門&#xff0c;在“學完”Vue之后&#xff0c; 我也有了這個疑問&#xff0c;但當時的…

萬物互聯之~RPC專欄

3.RPC引入 上篇回顧&#xff1a;萬物互聯之~深入篇 Code&#xff1a;https://github.com/lotapp/BaseCode/tree/master/python/6.net/6.rpc/ 其他專欄最新篇&#xff1a;協程加強之~兼容答疑篇 | 聊聊數據庫~SQL環境篇 3.1.概念 RPC(Remote Procedure Call)&#xff1a;分布式系…

python判斷字符大小寫轉換_Python 字符串大小寫轉換的簡單實例

①所有字母都轉換為大寫# -*- coding:utf-8 -*-if __name__ "__main__":a hello, world!print(a.upper())輸出&#xff1a;HELLO, WORLD!②所有字母都轉換為小寫# -*- coding:utf-8 -*-if __name__ "__main__":a HELLO, WORLD!print(a.lower())輸出&am…

正則表達式如何匹配正反斜杠

轉載鏈接&#xff1a;http://wiki.ubuntu.org.cn/Python%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97#.E5.8F.8D.E6.96.9C.E6.9D.A0.E7.9A.84.E9.BA.BB.E7.83.A6 反斜杠的麻煩 在早期規定中&#xff0c;正則表達式用反斜杠字符 ("…

前端進階必備Node.js,你得了解一下

作為前端開發&#xff0c;工作中肯定離不開 JavaScript &#xff0c;而 Node.js 是基于 JavaScript 語言和 V8 引擎的 Web 服務器項目&#xff0c;讓你可以直接使用 JavaScript 來搭架服務器。而且在 Node 環境下&#xff0c;通過模塊化的 JavaScript 代碼&#xff0c;加上函數…

Google推出“Google實驗室” Ad Innovations

4月1日消息&#xff0c;據國外媒體報道&#xff0c;Google近日推出了Ad Innovations功能&#xff0c;類似于“Google實驗室”&#xff0c;但專門用于展示最新的廣告技術、方案等&#xff0c;并征求廣告主的反饋。 目前Ad Innovations已有數款新功能&#xff0c;Google將按照反饋…

JS中utf8和GBK的字符編碼轉換

1、PHP中的 json_encode 函數只限編碼UTF-8的數據&#xff0c;當轉換GBK或者GB2312等編碼的數據時&#xff0c;會將漢字轉為NULL。 2、JavaScript 中json 的使用&#xff1a; ① 將對象轉為json字符串&#xff1a;JSON.stringify(obj)② 將json轉為對象&#xff1a;dataObj ev…

tcptracerte參數_TCP/IP詳解學習筆記(4)-ICMP協議,ping和Traceroute【轉】

1.IMCP協議介紹前面講到了&#xff0c;IP協議并不是一個可靠的協議&#xff0c;它不保證數據被送達&#xff0c;那么&#xff0c;自然的&#xff0c;保證數據送達的工作應該由其他的模塊來完成。其中一個重要的模塊就是ICMP(網絡控制報文)協議。當傳送IP數據包發生錯誤&#xf…