摘要:因?yàn)橹挥杏玫轿粓D的地方才會出現(xiàn)像素缺失和像素丟失的狀況其他的元素都是系統(tǒng)繪制的矢量圖形不受是否是高清屏幕的影響。解決方案圖標(biāo)準(zhǔn)還是按照上方的標(biāo)準(zhǔn)。比如大小為的按鈕按上面標(biāo)準(zhǔn)換算成為這就蛋疼了,你無法直觀看出這個按鈕多大修改起來更是蛋疼。
目標(biāo)
1.明確統(tǒng)一@x圖的標(biāo)準(zhǔn),以750x1334切下來的圖 為@2x的標(biāo)準(zhǔn)
2.使用以屏幕寬度為基準(zhǔn)的相對單位,為了適配,從設(shè)計稿到成品肯定存在換算過程
3.為位圖的容器設(shè)置寬高
適配后效果圖:基本不會出現(xiàn)很不理想的狀況
其實(shí)已750x1334設(shè)計出來的圖,切下來,剛剛好就是2x圖,縮小1倍就是1x,乘以1.5就是3x圖
設(shè)計稿里量下的寬高就是你需要的寬高嗎?不是的 ??!比如750px的iphone6 量出75px的物體,在375px的手機(jī)里肯定只有35px。所以為了適配你必需轉(zhuǎn)換成以屏幕寬度為標(biāo)準(zhǔn)的相對單位,所以換算過程肯定是存在的,因?yàn)樵O(shè)計稿只是一個750的基準(zhǔn)。
@x圖只針對于圖片和圖標(biāo),這種需要用到位圖的地方詳細(xì)原理請點(diǎn)擊查看.
其目標(biāo)既是在等大的容器內(nèi)裝入像素更大的位圖,從而補(bǔ)足像素點(diǎn)的缺失。
因?yàn)橹挥杏玫轿粓D的地方才會出現(xiàn)像素缺失和像素丟失的狀況,其他的元素都是系統(tǒng)繪制的矢量圖形不受是否是高清屏幕的影響。
如果@x圖比實(shí)際需要小,那么圖像就會模糊。
@x圖比實(shí)際需要大如果@x圖比實(shí)際需要大時會出現(xiàn)什么問題,其實(shí)這種情況也會出現(xiàn)問題只是問題不明顯,會出現(xiàn)的問題就是圖像失真,因?yàn)樵O(shè)備實(shí)際上沒那么多像素點(diǎn)顯示,就是丟失一些像素點(diǎn)。這種情況一般不易察覺,但是問題肯定是存在的。這就是為什么有些同志拿到大圖了,卻覺得可以的原因,因?yàn)橹灰拗屏藞D片的大小,他自己也看不出問題。
另外還有一點(diǎn),就是web前端同志拿到的圖片會過大,這個影響就比較大了。
所以不是用越大的圖就越好。
@x圖標(biāo)準(zhǔn)還是按照上方的標(biāo)準(zhǔn)。如果發(fā)現(xiàn)ps切下來的@2x比設(shè)計稿里的大了,既是出現(xiàn)錯誤。
另外程序端還是建議按設(shè)計稿給用到圖片的地方設(shè)置寬高,這樣防止換了大圖后圖片撐開的問題。
rem是指相對于根元素的字體大小的單位。
那么根據(jù)該原理:我們只需能動態(tài)獲取屏幕的dpr及寬度信息,并改變根元素的font-size,其余的所有頁面元素也將會進(jìn)行改變。
詳細(xì)原理請點(diǎn)擊查看存在問題
但是該方案有個問題,rem單位很不直觀。比如大小為80px的按鈕, 按上面標(biāo)準(zhǔn)換算成rem為1.946rem[這就蛋疼了,你無法直觀看出這個按鈕多大,修改起來更是蛋疼。如果沒有一套優(yōu)雅的管理方案,后期修改基本靠感覺或者畫點(diǎn)時間計算下==],接下來和大家聊聊如何優(yōu)雅的使用rem單位。
假設(shè)對于一個iphone6的視覺稿,我們定義它的基準(zhǔn)值就是75 該基準(zhǔn)值是根據(jù)你的定義變的關(guān)于基準(zhǔn)值有問題可見
這樣我們就可以按照設(shè)計稿的大小寫進(jìn)程序,從而便于維護(hù)和識別
//輔助函數(shù) // 例如: .px2rem(height, 80); @mixin px2rem(@name, @px){ @{name}: @px / 75 * 1rem; }使用相對單位vw
原理與上面的rem相同,也來得更簡單。因?yàn)関w本來就相對可視窗口寬度的百分比不受顯示器分辨率的影響。
存在問題需要注意有版本要求:android4.4以上版本;ios8以上版本 最新兼容性查看
另外也存在百分比在設(shè)計稿中轉(zhuǎn)換到程序上的不直接問題
同樣在定好設(shè)計稿后,可以書寫sass函數(shù)來輔助編程
假設(shè)設(shè)計稿為750*1330 上的按鈕大小為120px,那么可以這么書寫
//.px2rem(width, 120); @mixin px2vw(@name, @px){ @{name}: @px / 750 * 1vw; }圖片的話推薦直接使用@2x 或者 使用矢量圖形
圖片這里因?yàn)閔5端特殊,既要考慮流量,又要考慮清晰度,這里推薦還是直接使用@2x圖吧!別折騰了!
小程序端解決方案 1.小程序需要使用rpxrpx為小程序自己的單位,會對設(shè)備進(jìn)行適配
rpx與[750*1330]設(shè)計稿px的關(guān)系1px==1rpx,但是在iphone6上0.5px==1rpx 詳見
Taro 方案的初心就是為了打造一個多端開發(fā)的解決方案。目前 Taro 代碼可以支持轉(zhuǎn)換到 微信/百度/支付寶/字節(jié)跳動小程序 、 H5 端 以及 移動端(React-Native)。
Taro.js是京東出品的小程序框架,經(jīng)使用除了不支持一些react語法外,基本無大槽點(diǎn)[這里不經(jīng)要吐槽下騰訊官方的wepy,真是坑死人不償命!請慎用慎用!]
該框架直接服務(wù)到位,代碼直接書寫px單位[又不用記多一個rpx單位了
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/54827.html
摘要:因?yàn)橹挥杏玫轿粓D的地方才會出現(xiàn)像素缺失和像素丟失的狀況其他的元素都是系統(tǒng)繪制的矢量圖形不受是否是高清屏幕的影響。解決方案圖標(biāo)準(zhǔn)還是按照上方的標(biāo)準(zhǔn)。比如大小為的按鈕按上面標(biāo)準(zhǔn)換算成為這就蛋疼了,你無法直觀看出這個按鈕多大修改起來更是蛋疼。 目標(biāo) 1.明確統(tǒng)一@x圖的標(biāo)準(zhǔn),以750x1334切下來的圖 為@2x的標(biāo)準(zhǔn)2.使用以屏幕寬度為基準(zhǔn)的相對單位,為了適配,從設(shè)計稿到成品肯定存在換算過...
摘要:因?yàn)橹挥杏玫轿粓D的地方才會出現(xiàn)像素缺失和像素丟失的狀況其他的元素都是系統(tǒng)繪制的矢量圖形不受是否是高清屏幕的影響。解決方案圖標(biāo)準(zhǔn)還是按照上方的標(biāo)準(zhǔn)。比如大小為的按鈕按上面標(biāo)準(zhǔn)換算成為這就蛋疼了,你無法直觀看出這個按鈕多大修改起來更是蛋疼。 目標(biāo) 1.明確統(tǒng)一@x圖的標(biāo)準(zhǔn),以750x1334切下來的圖 為@2x的標(biāo)準(zhǔn)2.使用以屏幕寬度為基準(zhǔn)的相對單位,為了適配,從設(shè)計稿到成品肯定存在換算過...
摘要:前言程序開發(fā)變是常態(tài)不變是非常態(tài)只有定好不變的規(guī)范并做得足夠好才能更好的應(yīng)付變化。該系列文章會把平時工作中常遇到的問題場景拋出并提供解決方案,主要來自自己的學(xué)習(xí)和整理。 前言 程序開發(fā)變是常態(tài),不變是非常態(tài)只有定好不變的規(guī)范,并做得足夠好,才能更好的應(yīng)付變化。 該系列文章會把平時工作中常遇到的問題場景拋出并提供解決方案,主要來自自己的學(xué)習(xí)和整理。 現(xiàn)主要涉及如下:圖標(biāo)工程化[好用的圖標(biāo)...
閱讀 2814·2021-11-24 09:39
閱讀 2789·2021-09-23 11:45
閱讀 3414·2019-08-30 12:49
閱讀 3364·2019-08-30 11:18
閱讀 1930·2019-08-29 16:42
閱讀 3351·2019-08-29 16:35
閱讀 1332·2019-08-29 11:21
閱讀 1926·2019-08-26 13:49