初探響應式Web設計

公司書櫃有本《響應式Web設計:HTML5和CSS3實戰》,大概就認真看了前面幾章,後面大部分介紹css3(隨便找本手冊均可以了要你可用!)css

《響應式Web設計:HTML5和CSS3實戰》html

移動優先的跨終端 Web 天貓 前端 @徐凱-鬼道 W3CTECH 2013 http://luics.com/demo/cew-w3ctech-1311/#/前端

響應式佈局 設計思想 概念

響應式佈局是Ethan Marcotte在2010年5月份提出的一個概念,簡而言之,就是一個網站可以兼容多個終端——而不是爲每一個終端作一個特定的版本。這個概念是爲解決移動互聯網瀏覽而誕生的。css3

         響應式佈局能夠爲不一樣終端的用戶提供更加溫馨的界面和更好的用戶體驗,並且隨着目前大屏幕移動設備的普及,用大勢所趨來形容也不爲過。隨着愈來愈多的設計師採用這個技術,咱們不只看到不少的創新,還看到了一些成形的模式。web

優勢和缺點chrome

優勢:瀏覽器

         面對不一樣分辨率設備靈活性強服務器

         可以快捷解決多設備顯示適應問題app

缺點:框架

         兼容各類設備工做量大,效率低下

         代碼累贅,會出現隱藏無用的元素,加載時間加長

         其實這是一種折中性質的設計解決方案,多方面因素影響而達不到最佳效果

         必定程度上改變了網站原有的佈局結構,會出現用戶混淆的狀況

根據不一樣的寬度進行識別,css3 media, 字體rem  按照根元素進行放大,避免css sprite按鈕等,否則要使用圖片縮放進行設置

設計思想

mobile frist (移動優先)

 

A級必須兼容, 簡單來講比較廣泛是 最低兼容 480 768 1024 這三個分別率,如今還有 1280 1960 等等級別要考慮(4k等等仍是須要media進行選擇

 

media ie8-6不支持可使用respond令到其支持,不過 不須要(ie8如下就給他使用默認css,沒必要太友善對待,必需要兼容能夠考慮使用Respond.js

 

內容優先是 響應式的第二個思想,讓主體內容首先顯示,還有是對應部分次要模塊進行修正排版顯示在後面。

例子就看我博客就能夠了!(改版以後再說)

1200-1920(固定1200)(主要桌面級 對於4k設備暫時還未考慮)

1200-1024(固定1000)(舊pc和平板)(ie6-8不支持響應式也默認這個寬度,然而對應太過老舊的東西我我的是不想作的)

768(768-1000)(寬99%)(我的確實不喜歡滿屏)

上面只是兼容 徹底無說到內容優先吧客官稍慢,如今上菜

480-768 對應左右模塊放在一塊兒顯得會太過緊湊,針對移動設備 把主題內容優先,因此文章列表在上面 日期公告就被我放置在列表到下面,(其實思想就是這麼簡單)

簡單的響應式佈局

根據寬度來變顏色

<!doctype html>

<html lang="en">

<head>

         <meta charset="UTF-8">

         <title>Responsive Design</title>

         <style>

         .content{

                   color: #123;

                   border: 1px solid #123;

                   width:98%;

                   margin: 0 auto;

         }

         @media screen and (max-width:1024px){

                   .content{

                            color: orange;

                            border: 1px solid  orange;

                            width:95%;

                   }

         }

         @media screen and (max-width: 768px){

                   .content{

                            color: red;

                            border: 1px solid  red;

                            width:98%;

                   }

         }

         @media screen and (max-width: 480px){

                   .content{

                            color: green;

                            border: 1px solid  green;

                            width: 95%;

                   }

         }

         </style>

</head>

<body>

         <div class="content">寬度</div>

</body>

</html>

 

媒體查詢能檢測那些特性

 width:視口寬度。

 height:視口高度。

 device-width:渲染表面的寬度(對咱們來講,就是設備屏幕的寬度)。

 device-height:渲染表面的高度(對咱們來講,就是設備屏幕的高度)。

 orientation:檢查設備處於橫向仍是縱向。

 aspect-ratio:基於視口寬度和高度的寬高比。一個16∶9 比例的顯示屏能夠這樣定義aspect-ratio: 16/9。

 device-aspect-ratio:和aspect-ratio 相似,基於設備渲染平面寬度和高度的寬高比。

 color:每種顏色的位數。例如min-color: 16 會檢測設備是否擁有16 位顏色。

 color-index:設備的顏色索引表中的顏色數。值必須是非負整數。

monochrome:檢測單色幀緩衝區中每像素所使用的位數。值必須是非負整數,如monochrome: 2。

 resolution:用來檢測屏幕或打印機的分辨率,如min-resolution: 300dpi。還能夠接受每釐米像素點數的度量值,如min-resolution: 118dpcm。

 scan:電視機的掃描方式,值可設爲progressive(逐行掃描)或interlace(隔行掃描)。如720p HD 電視(720p 的p 即代表是逐行掃描)匹配scan: progressive,而1080i HD 電視(1080i 中的i 代表是隔行掃描)匹配scan: interlace。

 grid:用來檢測輸出設備是網格設備仍是位圖設備。在上述全部特性中,除scan 和grid 以外,均可使用min 和max 前綴來建立一個查詢範圍。例如,分析以下所示的代碼片斷:

 @import url("phone.css") screen and (min-width:200px) and (max-width:360px);這裏對width 應用了min 和max 來設定查詢範圍。這樣phone.css 文件只會引入視口寬度介於200 像素至360 像素的顯示屏設備。

 根據上述能夠先寫一個無media的css 讓一些低端瀏覽器去讀取,大概就是1024等級用戶,後面使用media 對其餘分辨率進行覆蓋重寫.

 

阻止移動瀏覽器縮放  

插入

<meta name="viewport" content="initial-scale=2.0,width=device-width">

viewport 視覺

initial-scale 初始化倍數2.0爲放大倍數

width 屏幕寬度

initial-scale 初始縮放。即頁面初始縮放程度。這是一個浮點值,是頁面大小的一個乘數。例如,若是你設置初始縮放爲「1.0」,那麼,web頁面在展示的時候就會以target density分辨率的1:1來展示。若是你設置爲「2.0」,那麼這個頁面就會放大爲2倍。

maximum-scale 最大縮放。即容許的最大縮放程度。這也是一個浮點值,用以指出頁面大小與屏幕大小相比的最大乘數。例如,若是你將這個值設置爲「2.0」,那麼這個頁面與target size相比,最多能放大2倍。

user-scalable 用戶調整縮放。即用戶是否能改變頁面縮放程度。若是設置爲yes則是容許用戶對其進行改變,反之爲no。默認值是yes。若是你將其設置爲no,那麼minimum-scale 和 maximum-scale都將被忽略,由於根本不可能縮放。

還有minimum-scale 最小縮放倍數

移動設備的一些meta

  <meta name="apple-mobile-web-app-capable" content="yes"/>

Web應用 全屏模式運行content ="yes|no" 默認no

  <meta name="apple-mobile-web-app-status-bar-style" content="black-transparent"/>

Web應用 狀態欄(屏幕頂部欄)的樣式

content ="default|blank|black-transparent|blank-translucent "

default:默認顯示 blank:黑色black-transparent:黑色透明blank-translucent:黑色半透明

  <meta name="format-detection" content="telephone=yes"/>

         識別頁面中的電話號碼。content="telephone=yes|no"

  <meta name="msapplication-tap-highlight" content="no"/>

禁用連接高亮(主要是ie和Safari 對於超連接被觸摸的時候顯示的高亮)

把流式佈局應用到響應式設計

         流式佈局的必記的公式: 目標寬度像素/上下文寬度像素=百分比

         簡單來講就是佈局是 目標元素的寬度/父親元素的寬度得出百分比;對應字體也能夠套用公式就是須要主要字體的百分比的計算方式(像素是設計圖的像素)

         最外層的百分比body 這一類,90%-100% 憑着觀感

         由於是按照父親元素來計算

佈局寬度轉換

         <div style="width:960px"><div style="width:940px"> </div> </div>

         按照公式轉換爲 940/960=0.9791666666666667

         <div style="width:960px"><div style="width: 97.91666666666667%"> </div> </div>

字體寬度轉換

         em來替換px,如今也有rem新的標籤,

em是根據父元素的進行縮放,倍數縮放

<div style="font-size:16px"><div style=" font-size:48px "> </div> </div>

按照公式轉換爲 48/16=3

<div style="font-size:16px"><div style=" font-size:3em "> </div> </div>

rem是根據根元素進行縮放

<body style="font-size:10px"><div style="font-size:16px"><div style=" font-size:48px "> </div> </div></body>

轉換 很是方便計算(我的也是推薦,ie8如下不支持要兼容寫法 先寫px再寫rem 覆蓋 48/10=4.8

<body style="font-size:10px"><div style="font-size:1.6rem"><div style=" font-size:4.8rem"> </div> </div></body>

圖片轉換

公式和上面同樣只是給圖片限制了一個最大寬度(就是圖片原本的寬度該設計概念也一樣應用到body的寬度 從而達到良好的用戶體驗

服務器也提供自適應圖片選擇加載對應的圖片

圖片的存放地址 asset bkg的文件夾圖片不會縮,反而特定的文件夾的圖片纔會縮放


網格系統

存在不少網格系統能夠進行快速搭建, 比較響應式框架就是使用這些

響應式視頻

對於iframe的視頻對應加載適應的框架進行解決 FitVids

 

PS:還有一些設備之類還未有任何兼容,其實響應式就是爲了一個頁面支持更多的設備,更有利於SEO,可是桌面的設備所追求的效果和移動設備還有有挺大區別,響應式的缺陷可能就在這裏。

能夠觀摩一下淘寶 騰訊 百度首頁,他們都會專門作了移動端頁面 pad頁面(畢竟效果和體現會更好),可是他們的活動頁 遊戲頁 卻不會爲此而作一個其餘端的頁面,直接響應式爲主。

還能夠補充一下 能夠試試對應的2k 4k屏對於 淘寶 騰訊 百度首頁進行測試,

發現都不太好;‘坑’還有所需慢慢填

 轉載請保留源地址,謝謝

相關文章
相關標籤/搜索