前端的適配方案大致分為三種:
?
1.根據(jù)頁(yè)面寬度百分比適應(yīng)
曾經(jīng)很長(zhǎng)的一段時(shí)間,我們都采用百分比適配方案。例如微信購(gòu)物入口中的京東購(gòu)物,目前仍然采用這種方案。
這種方案的主要表現(xiàn)就是,在比基準(zhǔn)設(shè)備(如640x960px)寬的設(shè)備上,頁(yè)面元素的橫向?qū)挾仁前窗俜直茸赃m應(yīng)的,但是高度不會(huì)變化。所以,無(wú)論遇到什么設(shè)備,只需要在寬度上進(jìn)行兼容即可滿足,而文本圖片等內(nèi)容,也可以按照寬度自適應(yīng),盡可能充分利用屏幕空間。
而開發(fā)時(shí),由于iPhone以及許多Android機(jī)都具有高分辨率屏幕,比如iPhone 4S的Retina屏幕實(shí)際像素點(diǎn)是物理像素的兩倍。所以,我們開發(fā)時(shí)要在640x960px的設(shè)計(jì)稿尺寸的基礎(chǔ)上除以2,比如設(shè)計(jì)稿上的高度是200px,則CSS中就是height:100px;
?
關(guān)于Retina屏幕的基本知識(shí),建議大家自己查找資料,我只挑重點(diǎn)。
?
效果:按設(shè)計(jì)稿尺寸除以2,元素寬度使用百分比實(shí)現(xiàn)。
場(chǎng)景:平臺(tái)型頁(yè)面,頁(yè)面布局不是很復(fù)雜。
優(yōu)點(diǎn):可以適應(yīng)幾乎所有設(shè)備。
缺點(diǎn):橫向拉寬會(huì)使布局比例失調(diào),且復(fù)雜結(jié)構(gòu)百分比實(shí)現(xiàn)有難度。
?
2.根據(jù)meta按比例縮放
這種方案的實(shí)現(xiàn)更偏技術(shù),大致原理是根據(jù)設(shè)備的分辨率及像素比等信息,計(jì)算出頁(yè)面的縮放(scale)數(shù)值,來(lái)進(jìn)行等比縮放。最終的效果就是基于640x960px的設(shè)計(jì)稿再進(jìn)行等比縮放,這種實(shí)現(xiàn)比較適合某些圖片較多的活動(dòng)頁(yè)面開發(fā),可以使用設(shè)計(jì)稿上的絕對(duì)像素值進(jìn)行開發(fā),即設(shè)計(jì)稿上是200px則CSS代碼中的數(shù)值也是200px。
?
當(dāng)然,這種方案也有致命的缺點(diǎn),即腳本計(jì)算的結(jié)果很難覆蓋全部設(shè)備,對(duì)于一些計(jì)算不準(zhǔn)確,或者分辨率像素比未知的設(shè)備,很容易整個(gè)頁(yè)面異常放大或縮小,直接暴露嚴(yán)重BUG。綜上,這種縮放方案可以總結(jié)出以下基本特征:
?
效果:按設(shè)計(jì)稿等比縮放。
場(chǎng)景:圖片較多的活動(dòng)頁(yè)面開發(fā)。
優(yōu)點(diǎn):可以直接按照設(shè)計(jì)稿像素值開發(fā)。
缺點(diǎn):許多設(shè)備無(wú)法覆蓋,不斷填坑。
?
3.基于媒體查詢的響應(yīng)式方案
響應(yīng)式設(shè)計(jì),曾經(jīng)乃至現(xiàn)在都是非常時(shí)髦的概念,不過(guò)在實(shí)際應(yīng)用中,響應(yīng)式設(shè)計(jì)還是有其相對(duì)狹隘的應(yīng)用場(chǎng)景。一般除了一些創(chuàng)新的小公司,或者某些專題網(wǎng)站之外,很少會(huì)用一套代碼來(lái)適配所有終端。比如PC,Mobile,Pad甚至iWatch等,全都用一套代碼來(lái)適配顯然是不科學(xué)的。
?
目前普遍的觀點(diǎn)是,響應(yīng)式設(shè)計(jì)更適合專題頁(yè)面,或者沒(méi)有資源來(lái)針對(duì)各個(gè)終端進(jìn)行單獨(dú)開發(fā)的團(tuán)隊(duì)來(lái)使用。
?
響應(yīng)式設(shè)計(jì)主要遵循MobileFirst,要針對(duì)不同設(shè)備給出不同設(shè)計(jì)方案,并設(shè)置合適的斷點(diǎn),結(jié)合百分比方案,來(lái)在不同的設(shè)備顯示不同的布局。
?
效果:不同設(shè)備表現(xiàn)可能截然不同。
場(chǎng)景:專題網(wǎng)站,小團(tuán)隊(duì)低成本開發(fā)。
優(yōu)點(diǎn):不通設(shè)備可以發(fā)揮更多的想象力。
缺點(diǎn):要出多套設(shè)計(jì),且內(nèi)容可能需要取舍。
?
移動(dòng)設(shè)備尺寸
網(wǎng)上專門講解移動(dòng)設(shè)備尺寸的文章很多,事實(shí)上,移動(dòng)設(shè)備種類之多簡(jiǎn)直是噩夢(mèng)一般。所以,實(shí)際在設(shè)計(jì)或者開發(fā)過(guò)程中,往往只是選擇幾種設(shè)備作為基準(zhǔn)來(lái)進(jìn)行設(shè)計(jì)和開發(fā),而對(duì)于其他情況,則采用一些適配策略覆蓋。
?
目前主流的,是以iPhone 4的640x960px或者iPhone 6 plus的1242x2208px為基準(zhǔn)設(shè)計(jì),其他設(shè)備均采取適配策略。我們先假定設(shè)計(jì)稿是按640x960px的規(guī)范輸出。
?