超實用!寫給設計師的移動頁面適配小知識

3 評論 11621 瀏覽 104 收藏 10 分鐘

本文主要介紹以下三塊內容:移動設備尺寸、前端適配方案和設計師與前端如何對接。

移動設備尺寸

網上專門講解移動設備尺寸的文章很多,事實上,移動設備種類之多簡直是噩夢一般。所以,實際在設計或者開發過程中,往往只是選擇幾種設備作為基準來進行設計和開發,而對于其他情況,則采用一些適配策略覆蓋。

uisdc-2-20160831 (2)

目前主流的,是以 iPhone4 的 640x960px 或者 iPhone6 plus 的 1242x2208px 為基準設計,其他設備均采取適配策略。我們先假定設計稿是按 640x960px 的規范輸出,先來看看前端的常用適配方案。

前端適配方案

前端的適配方案大致分為四種:根據 meta 按比例縮放、根據頁面寬度百分比適應、基于媒體查詢的響應式方案以及REM縮放方案。

1、根據 meta 按比例縮放

這種方案的實現更偏技術,大致原理是根據 設備的分辨率及像素比 等信息,計算出頁面的縮放(scale)數值,來進行等比縮放。最終的效果就是基于 640x960px 的設計稿再進行等比縮放,這種實現比較適合某些圖片較多的活動頁面開發,可以使用設計稿上的絕對像素值進行開發,即設計稿上是 200px 則 CSS 代碼中的數值也是 200px。

當然,這種方案也有致命的缺點,即腳本計算的結果很難覆蓋全部設備,對于一些計算不準確,或者分辨率像素比未知的設備,很容易整個頁面異常放大或縮小,直接暴露嚴重 BUG。綜上,這種縮放方案可以總結出以下基本特征:

  • 效果:按設計稿等比縮放
  • 場景:圖片較多的活動頁面開發
  • 優點:可以直接按照設計稿像素值開發
  • 缺點:許多設備無法覆蓋,不斷填坑

2、根據頁面寬度百分比適應

曾經很長的一段時間,我們都采用百分比適配方案。例如微信購物入口中的京東購物,目前仍然采用這種方案。

這種方案的主要表現就是,在比基準設備(如 640x960px)寬的設備上,頁面元素的 橫向寬度 是按百分比自適應的,但是 高度不會變化。所以,無論遇到什么設備,只需要在寬度上進行兼容即可滿足,而文本圖片等內容,也可以按照寬度自適應,盡可能充分利用屏幕空間。

而開發時,由于 iPhone 以及許多 Android 機都具有高分辨率屏幕,比如 iPhone4S 的 Retina 屏幕實際像素點是物理像素的 兩倍。所以,我們開發時要在 640x960px 的設計稿尺寸的基礎上除以 2,比如設計稿上的高度是 200px,則 CSS 中就是 height:100px;

關于 Retina 屏幕的基本知識,建議大家自己查找資料,我只挑重點。

  • 效果:按設計稿尺寸除以2,元素寬度使用百分比實現
  • 場景:平臺型頁面,頁面布局不是很復雜
  • 優點:可以適應幾乎所有設備
  • 缺點:橫向拉寬會使布局比例失調,且復雜結構百分比實現有難度

3、基于媒體查詢的響應式方案

響應式設計,曾經乃至現在都是非常時髦的概念,不過在實際應用中,響應式設計還是有其相對狹隘的應用場景。一般除了一些創新的小公司,或者某些專題網站之外,很少會用一套代碼來適配所有終端。比如 PC,Mobile,Pad 甚至 iWatch 等,全都用一套代碼來適配顯然是不科學的。

目前普遍的觀點是,響應式設計更適合專題頁面,或者沒有資源來針對各個終端進行單獨開發的團隊來使用。

uisdc-2-20160831 (1)

響應式設計主要遵循 Mobile First,要針對不同設備給出不同設計方案,并設置合適的 斷點,結合百分比方案,來在不同的設備顯示不同的布局。

  • 效果:不同設備表現可能截然不同
  • 場景:專題網站,小團隊低成本開發
  • 優點:不通設備可以發揮更多的想象力
  • 缺點:要出多套設計,且內容可能需要取舍

4、REM縮放方案

REM 方案的原理跟 meta 方案非常相似,只不過是更加粗暴地根據設備的寬度來調整縮放。與 meta 方案不同的是,REM 方案并不是縮放整個頁面,而是頁面上所有的尺寸都是與根元素(html)的字體大小相關的,我們只是根據不同設備來調整根元素字體大小,則所有尺寸隨之變化。

  • 效果:按照設計稿等比縮放
  • 場景:活動頁面及部分平臺頁面
  • 優點:開發方便,適應性好
  • 缺點:等比縮放超大會顯得不精致,腳本計算晚頁面可能跳動

設計師與前端如何對接

了解了上面的一些適配方案之后,作為設計師同學就要首先確定,我的設計稿在不同的設備上到底需要怎樣的表現?假設遇到了更寬的設備,是橫向拉寬?還是等比縮放?還是再設計一個截然不同的布局?

這些前提基本確定了該設計稿會如何實現,當然你所設計的頁面可能是平臺的一部分,那么就要遵循平臺既有的縮放規則,否則可能會有一些不匹配的問題。比如 meta 不同的兩個頁面來回切換會產生瞬間放大的 BUG 等。

確定好大致的適配方向,你還要選擇是基于 640 還是基于 1242 的尺寸進行開發,有人提到 iPhone6 的 750,這里我們可以按照 640 拉寬的情況統一對待。

不過要注意的是,Sketch 中默認 750 的畫布,可不是按照 640 拉寬來構思的,所以如果要在 Sketch 中基于默認畫布開發,要考慮到放在 640 的機型上 icon 會稍大的情況。

uisdc-2-20160831

如果按照 640 寬度進行設計,實際上我們潛在約定了這是個類似 iPhone4/4S 的 2 倍像素比的設計稿。那么,無論采用何種適配方案,我們輸出的 icon 等都是 相當于兩倍尺寸的。而在前端開發過程中,如果采用 meta 方案,則 CSS 中使用實際尺寸。

而如果是百分比方案等,則在樣式中設置設計稿 1/2 的尺寸(對應設備的物理像素),但 icon 圖片本身還是設計稿的尺寸,只是在 Retina 屏幕上需要更多的像素,所以用代碼將其展示時在設備上的物理尺寸壓縮到了 1/2。

uisdc-2-20160831 (3)

關于物理像素,CSS像素,像素密度等內容,足夠再寫上 10086 個字了。作為設計師,只需要知道大概的計算方式,以及基本的適配方案?就可以了。

最后,也是最重要的,你的團隊一定要有設計規范,并且有與之對應的 開發規范,這樣才能真正的實現無縫對接。

 

作者:cyRotel

地址:http://www.uisdc.com/radio-buttons-design-skills

本文由 @cyRotel 授權發布于人人都是產品經理,未經作者許可,禁止轉載。

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 沒有UI怎么辦啊 我很心痛啊 設計出來的比我原型還難看

    來自江蘇 回復
  2. 感謝樓主分享,對于多端適配的問題至今仍困擾著我,看過很多資料,感覺還是很混亂。
    請問有沒有比較系統,從基礎知識到實際應用的內容可以分享一下呢?

    來自北京 回復
  3. 收藏了

    回復