国产黄色免费网站_久久天天做天天爱综合色_精品国产一区久久久_成人黄色激情网站_久久成人在线视频_美女一区二区在线观看_亚洲精品免费一区亚洲精品免费精品一区 _91精品国产综合久久精品麻豆

移動(dòng)端適配問題解決方案

2018-7-9    高勁

隨著時(shí)間的發(fā)展,現(xiàn)在基本上人手一部手機(jī)的低頭族。做為前端開發(fā)的程序猿,在開發(fā)移動(dòng)端web應(yīng)用的時(shí)候,對(duì)面一堆各色尺寸不一樣的屏幕,就有點(diǎn)淡淡的憂傷。

QQ截圖20180705114651.png

QQ截圖20180705114755.png

以上是2018年二月份的友盟數(shù)據(jù),可在這里查看詳情
很明顯我們所要實(shí)現(xiàn)的就是在上述如此之多的屏幕,都能實(shí)現(xiàn)UI大大出的視覺圖上的效果。而要實(shí)現(xiàn)這樣的效果主要有兩個(gè)難點(diǎn)

  • 各屏幕適配
  • Retina屏下的細(xì)節(jié)處理(主要是1px的問題)

各屏幕適配各屏幕的適配,有兩種方案,flexible + rem 與 vw。這三個(gè)單詞是什么意思,看著很眼熟,但是這兩個(gè)方案居然是什么呢,請(qǐng)?jiān)试S我細(xì)細(xì)道來(lái)。

flexible + rem顯而易見,該方案是由rem 以及 flexible組成的。rem (font size of the root element)相對(duì)于根元素(即html元素)font-size計(jì)算值的倍數(shù),flexible 即 flexible.js, 手淘團(tuán)隊(duì)提供的一個(gè)為該方案屏幕適配而寫的一個(gè)庫(kù),主要實(shí)現(xiàn)的功能就是,根據(jù)屏幕的寬度給 html 元素設(shè)置一個(gè)合適的 font-size 值。

怎么樣看的不是很懂是吧。讓我來(lái)用一個(gè)頁(yè)面場(chǎng)景再?gòu)?fù)述一遍。

正常情況下,我們的UI大大會(huì)以iphone6的尺寸為標(biāo)準(zhǔn),做一套視覺效果圖,并在上面進(jìn)行標(biāo)注,給到我們的標(biāo)注圖,如下所示

QQ截圖20180705115007.png

拿到這個(gè)圖 我們?cè)撊绾蜗率帜?/span>

  • 先設(shè)置 html 元素的 font-size, 這個(gè)值我們暫時(shí)設(shè)置為 font-size: 37.5px,即1rem = 37.5px;
  • 以iphone6為例子,其屏幕寬度為 750px, 整個(gè)屏幕的寬度即 20rem = 37.5 * 20px = 750px;
  • 此時(shí)手機(jī)號(hào)的輸入框?yàn)?490px = 13.06777777rem
  • 依次將頁(yè)面上的px轉(zhuǎn)換為rem,這樣我們就得到了全是rem為尺寸單位的頁(yè)面

到這里為止是不是就結(jié)束了呢 ? 很遺憾的告訴你并不是。為什么 html 元素的 font-size 要設(shè)置為 37.5px呢?現(xiàn)在這個(gè)界面在iphone6上能完美顯示了,在iphone5s,iphone6p能完美顯示嗎?(iphone6, iphone6s, iphone7. iphone8屏幕沒有發(fā)生變化,本文直接用iphone6代替了。)上面的兩個(gè)問題 我們還有沒解決,這個(gè)時(shí)候就輪到flexible登場(chǎng)了。只需要像如下引入就可實(shí)現(xiàn)用js來(lái)自動(dòng)根據(jù)屏幕寬度設(shè)置 html元素的font-size的值。

<script src=";引申一下在上述過(guò)程中,你會(huì)發(fā)現(xiàn),UI給到我們的一般是px標(biāo)注的圖,我們將其轉(zhuǎn)化為rem,這個(gè)過(guò)程其實(shí)會(huì)花費(fèi)很大的計(jì)算時(shí)間。做為一個(gè)合格的程序員,我們應(yīng)該把這種機(jī)械性無(wú)腦的操作交給計(jì)算機(jī)來(lái)實(shí)現(xiàn)。我使用的是PostCss的插件 postcss-px2rem,這個(gè)插件能讓我們?cè)趯懘a時(shí)候直接寫px,在構(gòu)建的時(shí)候自動(dòng)將我們所寫的px轉(zhuǎn)換為rem,大大提升了我們的開發(fā)效率。

vw這個(gè)vw的方案,相當(dāng)而言還比較新。vw 即(viewport width)可視窗口的寬度。之所以把這個(gè)方案放在后面來(lái)說(shuō),是因?yàn)関iewport在去年(2017年)的時(shí)候存在不少的兼容性問題,各個(gè)瀏覽器的支持并不是很好。但是來(lái)到了2018年這個(gè)時(shí)間點(diǎn),viewport單位意見得到了眾多瀏覽器的支持(80.45%)。


QQ截圖20180705115133.png

可以在這里查看。
接下來(lái)就讓我們來(lái)正式了解下這個(gè)方案吧。vw既然是一個(gè)尺寸單位,那它的寬度等于多少呢?等于1%整個(gè)屏幕的寬度。舉個(gè)例子,再次以iphone6手機(jī)為例,100vw = 750px => 1vw = 7.5px
再一次那上次的界面做示范

QQ截圖20180705115007.png


  • 根據(jù)定義,我們了解了在iphone6手機(jī)上 1vw = 7.5px
  • 此時(shí)手機(jī)號(hào)的輸入框?yàn)?490px = 65.333333vw
  • 依次將頁(yè)面上的px轉(zhuǎn)換為vw,這樣我們就得到了全是vw為尺寸單位的頁(yè)面

到這里為止是不是就結(jié)束了呢? 是的就是這么簡(jiǎn)單。

引申一下跟之前一樣的痛點(diǎn),我們?nèi)匀恍枰ㄙM(fèi)大量不必要的計(jì)算時(shí)間去把標(biāo)注圖中的px轉(zhuǎn)換為vw,有沒有類似于postcss-px2rem的工具呢?很榮幸能再次站在巨人的肩膀上,已經(jīng)有大神寫了了類似的PostCss插件 postcss-px-to-viewport

1px問題移動(dòng)端的屏幕不僅僅分辨率有差異,其實(shí)還有Retina屏的問題。正常情況下,我們代碼里的1px在屏幕上就應(yīng)該顯示一個(gè)像素點(diǎn),但是在Retina屏下則不僅僅是一個(gè)像素點(diǎn)。再次拿iphone6為例,其dpr(device pixel ratio)設(shè)備像素比為2,css中一個(gè)1x1的點(diǎn),其實(shí)在iphone6上是2x2的點(diǎn),并且1px的邊框在devicePixelRatio = 2的Retina屏下會(huì)顯示成2px,在iPhone6 Plus下甚至?xí)@示成3px。

這樣的話,我們就會(huì)發(fā)現(xiàn)在有些手機(jī)上1px明顯跟另外的一些手機(jī)的1px粗細(xì)不一樣。其實(shí)大多數(shù)的小公司不會(huì)扣這樣的一個(gè)細(xì)節(jié),比如說(shuō)我們公司不會(huì)。(^__^) 嘻嘻……

但是作為一個(gè)有追求的前端工程師,我們應(yīng)該盡量的把事情做的完美一點(diǎn),(ps.像大公司看齊,在大公司這個(gè)細(xì)節(jié)問題其實(shí)是不容忽視的,為了自己以后的發(fā)展前途,我們有必要把這個(gè)細(xì)節(jié)完善掉的。)

這個(gè)問題的解決方案有很多,個(gè)人覺得最簡(jiǎn)單方面的還是大漠大大的一種解決方案。使用postcss-write-svg插件,

@svg 1px-border {  height: 2px;  @rect {    fill: var(--color, black);    width: 100%; height: 50%;    }  }.example {  border: 1px solid transparent;  border-image: svg(1px-border param(--color #00b1ff)) 2 2 stretch;}編譯出來(lái)就是

.example {  border: 1px solid transparent;  border-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='其他小程序中的屏幕適配最近在寫小程序,在小程序里,使用的是小程序的那套,跟平時(shí)用的vue全家桶以及react全家桶不一樣,并沒有配置webpack,在這種情況下我們使用postcss其實(shí)很困難(反正我是搞不出來(lái)/(ㄒoㄒ)/~~)

那該怎么辦呢,小程序提供了一個(gè)自己的單位, rpx(responsive pixel): 可以根據(jù)屏幕寬度進(jìn)行自適應(yīng)。規(guī)定屏幕寬為750rpx。如在 iPhone6 上,屏幕寬度為375px,共有750個(gè)物理像素,則750rpx = 375px = 750物理像素,1rpx = 0.5px = 1物理像素。



設(shè)備

rpx換算px (屏幕寬度/750)
px換算rpx (750/屏幕寬度)



iPhone5

1rpx = 0.42px
1px = 2.34rpx



iPhone6

1rpx = 0.5px
1px = 2rpx



iPhone6p

1rpx = 0.552px
1px = 1.81rpx

我們直接用拿到iphone6的標(biāo)注圖,直接寫rpx就好。



日歷

鏈接

個(gè)人資料

藍(lán)藍(lán)設(shè)計(jì)的小編 http://www.newchinaweekly.com

存檔

污网站在线看| 国产主播福利在线| 天堂在线观看av| 欧美日韩在线免费观看视频| 国产91九色视频| 欧美国产激情二区三区| 久久精品凹凸全集| 亚洲精品无播放器在线播放| 俺来俺也去www色在线观看| 伦理片一区二区三区| 天堂中文av| 成人3d动漫网站| 天天骑天天射| 女人色在线免费视频| 91avcom| 国产娇喘精品一区二区三区图片| 在线观看精品视频一区二区三区| 精品人妻一区二区三区蜜桃 | 91国产在线精品| 亚洲天堂av在线免费| 亚洲精品www久久久| 日韩欧美色电影| 精品蜜桃在线看| 亚洲国产高清福利视频| 亚洲黄页视频免费观看| 97成人超碰免| 在线精品日韩| 2022中文字幕| 日本中文字幕网址| 免费看国产曰批40分钟| 亚洲国产综合视频| 日韩在线视频免费看| 国产精品视频看看| 风流少妇一区二区三区91| 人妻丰满熟妇av无码区hd| 亚洲欧洲综合在线| 国产欧美日本亚洲精品一4区| 91在线资源| 人人澡人人爽| 在线高清av| 欧美亚洲人成在线| 青青草这里只有精品| 天天综合精品| 国产伦理一区| 国产sm精品调教视频网站| 久久久国产精品麻豆| 亚洲人成7777| 欧美色网站导航| 精品国产一区二区三区久久久蜜月| 欧美精品在线观看播放| 精品国产伦一区二区三区观看方式| 欧美中在线观看| 国产精品区一区二区三在线播放| 日本在线视频不卡| youjizz.com亚洲| 性猛交娇小69hd| 免费看日批视频| 人妻精品一区一区三区蜜桃91| 人成网站免费观看| av电影免费在线观看| 日本久久久久| 蜜臀av性久久久久蜜臀aⅴ流畅| 91天堂素人约啪| 香蕉成人啪国产精品视频综合网 | 亚洲综合在线播放| 亚洲国产婷婷香蕉久久久久久99| 成人黄色av片| 国产精品视频免费播放| 激情综合丝袜美女一区二区| 可以在线看的av| 日本v片在线免费观看| 成人动漫一区| 日韩激情图片| 国产福利一区二区三区视频| 亚洲精品视频在线观看免费| 欧美一区二区三区精品| 久久国产天堂福利天堂| 国产精品一区二区三区四区五区 | www.精品久久| 91官网在线| 性欧美video另类hd尤物| 久久成人免费网| 亚洲欧美日韩国产一区二区三区| 九色91av视频| 国产一区二区三区四区五区在线| 黄色一级视频在线播放| 一级特级黄色片| 欧美6699在线视频免费| www.av在线| 成人精品动漫一区二区三区| 日韩在线卡一卡二| 一区二区成人在线观看| 在线丨暗呦小u女国产精品| 欧美日产国产成人免费图片| 香港三级韩国三级日本三级| 亚洲视频重口味| 五月天激情婷婷| 黄页在线观看免费| 久久久久国产| 97久久精品人人爽人人爽蜜臀| 色综合欧美在线视频区| 欧美黄色片免费观看| 亚洲国产高清国产精品| 九九热精品视频在线| 免费看的www视频网站视频| 国产丝袜精品丝袜| 国产一区二区三区四区五区入口 | 一区二区日韩免费看| 日本一区二区三区高清不卡| 日韩精品视频在线免费观看| 国产精品美女xx| 国产一级片久久| 奇米影视狠888| 国产成人精品亚洲线观看| 九一九一国产精品| 久热精品视频在线观看| 一级全黄肉体裸体全过程| 日韩综合在线观看| 免费人成短视频在线观看网站| 五月天综合网站| 亚洲精品在线一区二区| 丰满爆乳一区二区三区| 四虎a级欧美在线观看| 色屁屁www国产馆在线观看| 国产精品va| 精品欧美aⅴ在线网站| 日本久久久久久| 欧美88888| 三区四区电影在线观看| 欧美伊人影院| 亚洲成人动漫av| 国产91色在线免费| www.av视频| 免费一级电影| 亚洲国产美女| 欧美日本韩国一区二区三区视频 | 国产蜜臀一区二区打屁股调教| 91麻豆国产香蕉久久精品| 成人自拍性视频| 香港三日本8a三级少妇三级99| 亚洲精品手机在线| 精品久久电影| 午夜成人免费电影| 一二三四中文字幕| 亚洲精品一区二三区| 国产三级在线看| 另类亚洲自拍| 亚洲精品在线观| 先锋资源在线视频| 欧美一级淫片免费视频| 日本道不卡免费一区| 日韩欧美国产黄色| 国产精品一码二码三码在线| 一级特黄aaa| 日本高清成人vr专区| 国产精品国产自产拍在线| 国产成人精品网站| 少妇光屁股影院| 免费大片黄在线观看| 夜久久久久久| 日本成人在线视频网址| 一二三区免费视频| 亚洲高清999| 午夜精品久久久久| 久久久久久人妻一区二区三区| 黄色网址免费| 九一亚洲精品| 在线观看不卡一区| 日韩一区二区三区高清| 人妻妺妺窝人体色www聚色窝| 欧美日韩中文一区二区| 久久久av一区| 国产视频久久久久久| 69av亚洲| 亚洲国产成人porn| 国产熟人av一二三区| 国产卡一卡二卡三| 日日夜夜一区二区| 久久久久www| 男人午夜免费视频| 91国内精品| 欧美日韩国产bt| 日韩无码精品一区二区| 18加网站在线| 色狠狠综合天天综合综合| 男女啪啪的视频| 五月亚洲综合| 一二三区精品| 亚洲影院在线看| 欧美xxxxbbbb在线播放| 日本成人在线电影网| 精品少妇v888av| 久久久久亚洲视频| 久久国产成人午夜av影院宅| 456国产精品| 国产午夜激情视频| 99热99re6国产在线播放| 亚洲人妖av一区二区| 美女黄色片视频| av最新地址|