精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

關(guān)于適配你需要知道的—MobileWeb適配總結(jié)

移動開發(fā) Android
本篇討論的頁面指專門針對手機(jī)設(shè)備設(shè)計的頁面,并非兼容全設(shè)備的響應(yīng)式布局。 文中提到的 device-width 指 viewport meta 標(biāo)簽中 width 的值,即由瀏覽器指定的值,常用機(jī)型對應(yīng)值可參照Screen Sizes。

開門見山,本篇將總結(jié)一下MobileWeb的適配方法,即我們常說的H5頁面、手機(jī)頁面、WAP頁、webview頁面等等。

本篇討論的頁面指專門針對手機(jī)設(shè)備設(shè)計的頁面,并非兼容全設(shè)備的響應(yīng)式布局。 文中提到的 device-width 指 viewport meta 標(biāo)簽中 width 的值,即由瀏覽器指定的值,常用機(jī)型對應(yīng)值可參照Screen Sizes。

適配達(dá)到的效果是什么?

在不同尺寸的手機(jī)設(shè)備上,頁面“相對性的達(dá)到合理的展示(自適應(yīng))”或者“保持統(tǒng)一效果的等比縮放(看起來差不多)”。

適配應(yīng)關(guān)注哪些要素?

一般來說,我們需要關(guān)注的是:字體、高寬間距、圖像(圖標(biāo)、圖片)。

其中,圖像相對要復(fù)雜一些,針對流量、清晰度等問題網(wǎng)上也有比較成熟的解決方案,比如:矢量化、字體化、image-set 等等,在此不做深入。在滿足快速開發(fā)的需求下,我們使用較為偷懶的方式:利用 css 將圖像限定在元素內(nèi)( img 圖片使用 [max-]width: 100% ,背景圖像使用 background-size ),布局只針對元素進(jìn)行。

另外要考慮到,設(shè)計師設(shè)計視覺稿時使用什么樣的寬度,才能既滿足設(shè)計自身的需求又能讓前端開發(fā)方便的切圖適配。

舉個例子

圍繞這三要素,我們用一個小例子來說明接下來要介紹的三種方案的實(shí)現(xiàn)方式,按 640px 標(biāo)準(zhǔn)需實(shí)現(xiàn)的效果如圖:

app.jpg

固定高度,寬度自適應(yīng)

這是目前最通用的一種做法,屬于自適應(yīng)布局,viewport width 設(shè)置為 device-width,以較小寬度(如 320px)的視覺稿作為參照進(jìn)行布局。垂直方向的高度和間距使用定值,水平方向混合使用定值和百分比或者利用彈性布局,最終達(dá)到“當(dāng)手機(jī)屏幕變化時,橫向拉伸或者填充空白的效果”。圖像元素根據(jù)容器情況,使用定值或者 background-size 縮放。

粗略瀏覽了下一些大廠的首頁,像百度、騰訊、Facebook、Twitter 都是采用的這種方案。

要點(diǎn):

以小寬度作為參照是因?yàn)槿绻季譂M足了小寬度的擺放,當(dāng)屏幕變寬時,簡單的填充空白就可以了;而如果反過來就可能造成“擠壞了”,考慮 header 區(qū)域,左測 logo 右測橫向 nav 的情況。

需要小寬度的布局,又需要大寬度的圖像,這是一個矛盾點(diǎn)。

320px 過于窄小,不利于頁面的設(shè)計;只能設(shè)計橫向拉伸的元素布局,存在很多局限性。

兼容性較好。

實(shí)現(xiàn)比較簡單,樣式中的尺寸都按照視覺稿二分之一大小設(shè)置,查看效果和代碼。

 

固定寬度,viewport 縮放

視覺稿、頁面寬度、viewport width 使用統(tǒng)一寬度,利用瀏覽器自身縮放完成適配。頁面樣式(包括圖像元素)完全按照視覺稿的尺寸,使用定值單位 (px、em)即可完成。

優(yōu)點(diǎn):

開發(fā)簡單:縮放交給瀏覽器,完全按視覺稿切圖。

還原精準(zhǔn):絕對等比例縮放,可以精準(zhǔn)還原視覺稿(不考慮清晰度的情況下)。

測試方便:在PC端即可完成大部分測試,手機(jī)端只需酌情調(diào)整一些細(xì)節(jié)(比如圖標(biāo)、字體混合排列時,因?yàn)樽煮w不同造成的對齊問題)。

存在的問題:

像素丟失:對于一些分辨率較低的手機(jī),可能設(shè)備像素還未達(dá)到指定的 viewport 寬度,此時屏幕的渲染可能就不準(zhǔn)確了。比較常見的是邊框“消失”了,不過隨著手機(jī)硬件的更新,這個問題會越來越少的。

縮放失效:某些安卓機(jī)不能正常的根據(jù) meta 標(biāo)簽中 width 的值來縮放 viewport,需要配合 initial-scale 。

文本折行:存在于縮放失效的機(jī)型中,某些手機(jī)為了便于文本的閱讀,在文本到達(dá) viewport 邊緣(非元素容器的邊緣)時即進(jìn)行折行,而當(dāng) viewport 寬度被修正后,瀏覽器并沒有正確的重繪,所以就發(fā)現(xiàn)文本沒有占滿整行。一些常用的段落性文本標(biāo)簽會存在該問題。

縮放失效問題需通過 js 動態(tài)設(shè)定 initial-scale

  1. var fixScreen = function() { 
  2. var metaEl = doc.querySelector('meta[name="viewport"]'), 
  3. metaCtt = metaEl ? metaEl.content : ''
  4. matchScale = metaCtt.match(/initial\-scale=([\d\.]+)/), 
  5. matchWidth = metaCtt.match(/width=([^,\s]+)/); 
  6. if ( metaEl && !matchScale && ( matchWidth && matchWidth[1] != 'device-width') ) { 
  7. var width = parseInt(matchWidth[1]), 
  8. iw = win.innerWidth || width, 
  9. ow = win.outerWidth || iw, 
  10. sw = win.screen.width || iw, 
  11. saw = win.screen.availWidth || iw, 
  12. ih = win.innerHeight || width, 
  13. oh = win.outerHeight || ih, 
  14. ish = win.screen.height || ih, 
  15. sah = win.screen.availHeight || ih, 
  16. w = Math.min(iw,ow,sw,saw,ih,oh,ish,sah), 
  17. scale = w / width; 
  18. if ( ratio < 1) { 
  19. metaEl.content += ',initial-scale=' + ratio + ',maximum-scale=' + ratio + ', minimum-scale=' + scale + ',user-scalable=no'

文本折行問題可以通過 css 樣式解決。

 

既然該方案使用固定寬度值,那么這個值是多少合適呢?首要考慮的是主流分辨率,可參考Screen Sizes和友盟指數(shù)的數(shù)據(jù);其次要考慮設(shè)計部門常用的設(shè)計尺寸,綜合協(xié)調(diào),最終確定一個合適的值。

該處使用640px來實(shí)現(xiàn)例子,查看效果和代碼。

利用 rem 布局

依照某特定寬度設(shè)定 rem 值(即 html 的 font-size),頁面任何需要彈性適配的元素,尺寸均換算為 rem 進(jìn)行布局;當(dāng)頁面渲染時,根據(jù)頁面有效寬度進(jìn)行計算,調(diào)整 rem 的大小,動態(tài)縮放以達(dá)到適配的效果。利用該方案,還可以根據(jù) devicePixelRatio 設(shè)定 initial-scale 來放大 viewport,使頁面按照物理像素渲染,提升清晰度。

優(yōu)點(diǎn):

清晰度高,能達(dá)到物理像素的清晰度。

能解決 DPR 引起的“1像素”問題。

向后兼容較好,即便屏幕寬度增加、PPI 增加該方案依舊適用。

缺點(diǎn):

適配 js 需盡可能早進(jìn)入,減少(避免)viewport 變化引起的重繪。

某些Android機(jī)會丟掉 rem 小數(shù)部分。

需要預(yù)編譯庫進(jìn)行單位轉(zhuǎn)換。

開發(fā)時,css 及 js 都以 16px 作為基數(shù)換算 rem,借助預(yù)編譯庫(以 scss 為例),我們設(shè)定一個動態(tài)尺寸單位 $ppr: 750px/16px/1rem ,即 pixel per rem,任何使用彈性尺寸的地方寫作:width: 100px/$ppr。

動態(tài)調(diào)整 rem 的方法如下:

  1. var fixScreen = function() { 
  2. var metaEl = doc.querySelector('meta[name="viewport"]'), 
  3. metaCtt = metaEl ? metaEl.content : ''
  4. matchScale = metaCtt.match(/initial\-scale=([\d\.]+)/), 
  5. matchWidth = metaCtt.match(/width=([^,\s]+)/); 
  6. if ( !metaEl ) { // REM 
  7. var docEl = doc.documentElement, 
  8. maxwidth = docEl.dataset.mw || 750// 每 dpr ***頁面寬度 
  9. dpr = isIos ? Math.min(win.devicePixelRatio, 3) : 1
  10. scale = 1 / dpr, 
  11. tid; 
  12. docEl.removeAttribute('data-mw'); 
  13. docEl.dataset.dpr = dpr; 
  14. metaEl = doc.createElement('meta'); 
  15. metaEl.name = 'viewport'
  16. metaEl.content = fillScale(scale); 
  17. docEl.firstElementChild.appendChild(metaEl); 
  18. var refreshRem = function() { 
  19. var width = docEl.getBoundingClientRect().width; 
  20. if (width / dpr > maxwidth) { 
  21. width = maxwidth * dpr; 
  22. var rem = width / 16
  23. docEl.style.fontSize = rem + 'px'
  24. }; 
  25. //... 
  26. refreshRem(); 

代碼實(shí)現(xiàn)主要參考淘寶網(wǎng)觸屏版的適配方法,查看效果和代碼,其中 scss 的寫法可以參見這里。

注意,較小的背景圖(比如一些 icon)的 background-size 不要使用具體 rem 數(shù)值,裁剪后會出現(xiàn)邊緣丟失。應(yīng)使用與元素等尺寸切圖,設(shè)定 background-size: cover|contain 來縮放。

總結(jié)

總的來看,目前還沒有***的解決方案,這些也只是盡可能的滿足快速開發(fā)、簡單適配需求的通用方案。其中對于一些較為細(xì)節(jié)的問題(比如字體的點(diǎn)陣尺寸、非彈性的定值需求)未做討論。實(shí)際開發(fā)過程中,更應(yīng)該綜合考慮項(xiàng)目類型、資源成本、人員配合等多方面的因素,選擇合適的方案。

代碼實(shí)現(xiàn)中使用到的 mobile-util.js 對定寬和 rem 適配進(jìn)行了整合,源碼在此。

責(zé)任編輯:chenqingxiang 來源: 艾佢K的博客
相關(guān)推薦

2023-01-30 11:43:04

開源代碼

2014-07-31 17:13:50

編碼程序員

2023-02-10 08:44:05

KafkaLinkedIn模式

2017-03-28 15:47:17

數(shù)據(jù)治理數(shù)據(jù)庫

2018-05-16 09:41:13

神經(jīng)網(wǎng)絡(luò)NN函數(shù)

2020-05-07 10:14:00

企業(yè)架構(gòu)師CIOIT網(wǎng)絡(luò)

2013-12-02 14:07:02

Hadoop大數(shù)據(jù)集群

2022-09-01 15:26:45

物聯(lián)網(wǎng)人工智能傳感器

2018-01-03 11:35:34

推送AndroidiOS

2023-10-31 12:43:00

Wi-Fi 7無線技術(shù)

2016-11-01 23:16:52

光纖光纖線纜

2022-04-24 09:00:00

滲透測試安全數(shù)字時代

2022-12-30 11:24:21

2017-02-09 14:46:25

Git事情

2023-09-04 07:49:43

2016-01-20 09:44:22

物聯(lián)網(wǎng)標(biāo)準(zhǔn)

2017-09-18 18:31:08

Hadoop

2018-06-15 23:00:56

2022-07-15 14:58:26

數(shù)據(jù)分析人工智能IT

2022-08-27 12:15:51

Linux Mint操作系統(tǒng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

国内精品一区二区三区四区| 精品剧情v国产在线观看在线| 亚洲欧美99| 999精品国产| 亚洲乱码视频| 亚洲欧美综合精品久久成人| 中文字幕成人免费视频| 日韩av官网| 国产亚洲一区字幕| 99久久无色码| 伊人久久中文字幕| 黄色成人在线网址| 色妞在线综合亚洲欧美| 逼特逼视频在线观看| 成人在线免费av| 亚洲一卡二卡三卡四卡| 色一情一乱一伦一区二区三欧美| 国产美女精品视频国产| 国产精品毛片一区二区三区| 久久精品美女视频网站| 色婷婷在线影院| 亚洲精品国产九九九| 日本高清不卡在线观看| 中文精品无码中文字幕无码专区 | 欧美mv和日韩mv的网站| 无码日韩人妻精品久久蜜桃| 丁香花电影在线观看完整版| √…a在线天堂一区| 人禽交欧美网站免费| 国产成人手机在线| 国产精品资源网| 国产免费一区二区三区在线观看 | 欧美区视频在线观看| 欧美丰满熟妇bbbbbb百度| 婷婷色在线资源| 国产精品久久夜| 亚洲ai欧洲av| 番号集在线观看| 久久嫩草精品久久久精品| 国产一区视频在线播放| www.五月婷婷.com| 首页国产欧美久久| 国产999在线| 青青操免费在线视频| 伊人久久久大香线蕉综合直播| 美女啪啪无遮挡免费久久网站| 久久久久久久久久久久| 色婷婷av一区二区三区丝袜美腿| 亚洲第一黄色网| 女性生殖扒开酷刑vk| 视频成人永久免费视频| 日韩视频一区二区在线观看| 免费网站在线观看黄| 免费成人毛片| 欧美日本在线播放| 天天综合成人网| 欧美电影在线观看一区| 日韩一区二区在线看| 一区二区三区人妻| 荡女精品导航| 国产视频精品自拍| 男生草女生视频| 欧美日韩123| 亚洲最大中文字幕| 很污很黄的网站| 亚洲色图二区| 久久久欧美一区二区| 精品成人av一区二区在线播放| 亚洲资源av| 国产精品久久久久久久久男| 亚洲一二区视频| 国产成人在线免费| 黄色91av| 成年网站在线| 亚洲精品成人a在线观看| 日本一区午夜艳熟免费| 欧美大胆成人| 欧美挠脚心视频网站| 欧美性猛交xx| 欧美影院天天5g天天爽| 尤物精品国产第一福利三区| 国产精品精品软件男同| 狠狠干成人综合网| 97成人在线视频| 成人免费一区二区三区| 久久99国产乱子伦精品免费| 99理论电影网| 黄色在线观看网| 亚洲人妖av一区二区| 路边理发店露脸熟妇泻火| 99riav视频在线观看| 日本高清成人免费播放| 色诱av手机版| 欧美色图激情小说| 欧美激情视频三区| 亚洲精品一区二三区| 国产精品亚洲第一| 任我爽在线视频精品一| 性网站在线观看| 在线一区二区三区做爰视频网站| 亚洲免费在线播放视频| 日韩免费电影在线观看| 久久在线精品视频| 极品国产91在线网站| 国产精品一级片| 欧美18视频| 怡红院av在线| 欧美中文字幕一区| 2一3sex性hd| 五月久久久综合一区二区小说| 欧美亚洲国产日韩2020| 99久久久久久久| 日本一区二区三区四区| 乱妇乱女熟妇熟女网站| 日韩在线观看一区二区三区| 伊人久久免费视频| 国产www在线| 粉嫩高潮美女一区二区三区| 曰韩不卡视频| 粉嫩一区二区三区| 欧美va亚洲va| 日本黄色片免费观看| 日韩和欧美的一区| 久久精品国产美女| 欧美78videosex性欧美| 91精品婷婷国产综合久久| 久久美女免费视频| 国产精品久久久久久久久久妞妞 | 超碰在线播放91| 台湾佬综合网| 亚州欧美日韩中文视频| 蜜桃视频污在线观看| 亚洲精品免费在线| www.污网站| 国产精品久久久久无码av| 国产精品对白刺激| 国产在线视频网站| 色av综合在线| 亚洲av综合一区二区| 亚洲中字黄色| 久久免费视频1| 神马久久午夜| 亚洲精品一区中文| 久久久免费高清视频| 久久综合九色综合欧美亚洲| 浮妇高潮喷白浆视频| 牛牛精品成人免费视频| 97视频在线观看视频免费视频| 粉嫩av一区二区夜夜嗨| 亚洲国产成人精品视频| 精品久久久久一区二区| 日韩天天综合| 美脚丝袜一区二区三区在线观看| 三级在线看中文字幕完整版| 精品视频久久久久久| 亚洲图片在线视频| 国产欧美一二三区| jizz18女人| 中文字幕午夜精品一区二区三区| 99国精产品一二二线| 日韩少妇视频| 日韩精品日韩在线观看| 亚洲国产精品无码久久久| 欧美激情一区二区三区全黄| 91精品无人成人www| 忘忧草精品久久久久久久高清| 成人免费视频在线观看超级碰| 超碰免费在线播放| 欧美精品一区视频| 久久精品视频1| 日本一区二区成人| 精品国产乱码久久久久久1区二区| 亚洲欧美综合久久久| 国产伦一区二区三区色一情| 成人影院网站| 久久久www成人免费精品张筱雨| 国产麻豆免费观看| 午夜欧美大尺度福利影院在线看| 欧美狂猛xxxxx乱大交3| 丝袜亚洲另类欧美| 中文精品一区二区三区| 岛国av一区| 国产精品永久免费| 国精产品一区一区三区mba下载| 精品性高朝久久久久久久| 在线播放亚洲精品| 亚洲高清三级视频| 91精品国自产在线| 国产成人av电影在线播放| 久久久久人妻精品一区三寸| 久久久久国产| 免费久久99精品国产自| 国产精品日本一区二区三区在线 | 精品视频国内| 91超碰caoporn97人人| 日本在线视频站| 日韩精品亚洲精品| 国产视频aaa| 一本色道a无线码一区v| 69xx绿帽三人行| 久久精品人人做人人综合 | 日韩视频在线一区| 香蕉国产在线视频| 91超碰这里只有精品国产| 国产区一区二区三| 综合自拍亚洲综合图不卡区| 在线观看av中文字幕| 精品一二三四区| 日韩精品一区二区三区不卡| 国语自产精品视频在线看8查询8| 亚洲高清资源综合久久精品| 偷窥自拍亚洲色图精选| 91黄在线观看| 日韩大陆av| 国产高清在线不卡| 亚洲啊v在线| 久久久欧美一区二区| 亚洲奶水xxxx哺乳期| 色av中文字幕一区| 成人亚洲性情网站www在线观看| 亚洲国产精品悠悠久久琪琪| 国产视频手机在线| 欧美日韩一区小说| 91在线视频免费播放| 婷婷六月综合亚洲| 久久久久久久久久91| 亚洲丝袜另类动漫二区| 成人黄色短视频| 国产欧美精品在线观看| 在线免费观看黄色小视频| 不卡的av在线播放| 少妇搡bbbb搡bbb搡打电话| 国产乱妇无码大片在线观看| 欧美日韩一区二区三区69堂| 奇米色一区二区三区四区| 成人三级视频在线播放 | 一区二区三区四区不卡在线| 日韩av毛片在线观看| 国产精品美女一区二区| 高清国产在线观看| 日本一区二区三区在线不卡| 天天干天天舔天天操| 欧美激情一区二区三区全黄| 亚洲成色www久久网站| 日本在线观看天堂男亚洲| 日韩av成人网| 校园激情久久| 欧美aⅴ在线观看| 久久综合婷婷| 北条麻妃69av| 久久视频一区| 91色国产在线| 久久国内精品自在自线400部| 亚洲精品视频导航| 美日韩一区二区| 一级做a爱视频| 成人小视频免费在线观看| 丰满岳乱妇一区二区| 91婷婷韩国欧美一区二区| 91中文字幕永久在线| 日本一区二区在线不卡| 青青青手机在线视频| 亚洲精品国产高清久久伦理二区| 久久久久久久蜜桃| 精品色蜜蜜精品视频在线观看| 九九精品免费视频| 欧美吞精做爰啪啪高潮| 国产精品久久婷婷| 欧美mv日韩mv国产| 毛片免费在线观看| 中文字幕久久亚洲| 成人区精品一区二区不卡| 欧美激情一级欧美精品| 在线视频cao| 国产精品自拍网| 91欧美日韩在线| 欧美精品v日韩精品v国产精品| 日韩激情免费| 日韩精品一区在线视频| 久久亚洲精选| 久久艹这里只有精品| 99re热这里只有精品视频| 亚洲理论片在线观看| 亚洲精品写真福利| 国产精品视频123| 8v天堂国产在线一区二区| 天天av天天翘| 日韩天堂在线视频| av中文在线资源库| 国产日韩av在线| 秋霞影院一区二区三区| 在线视频亚洲自拍| 国产午夜精品一区二区三区欧美| 污片在线免费看| 99精品国产视频| 日本中文在线视频| 在线视频综合导航| www视频在线| 这里只有精品在线观看| 欧美1—12sexvideos| 国产精品夜色7777狼人| 你懂的在线观看一区二区| 先锋影音男人资源| 久久久久久久尹人综合网亚洲| 亚洲欧美一区二区三区不卡| 国产午夜精品在线观看| 日韩乱码一区二区| 欧美一区二区视频免费观看| 黄色片在线播放| 久久久久久久久久久成人| 日韩免费在线电影| 欧美日韩一区二区视频在线| 狠狠色丁香久久综合频道| 午夜一区二区视频| 国产午夜精品一区二区三区四区| 国产福利久久久| 欧美一区二区视频观看视频| 91caoporm在线视频| 欧洲精品久久久| 国产图片一区| 日韩网站在线免费观看| 国产精品69毛片高清亚洲| 日韩不卡av在线| 91成人网在线| 欧美日韩视频精品二区| 98精品在线视频| 国产精品香蕉| 97在线国产视频| 成人免费三级在线| 免费人成在线观看| 欧美一区二区三区影视| 免费av在线网址| 成人国产亚洲精品a区天堂华泰| 精品国产一级毛片| 亚洲一二三区av| 久久久91精品国产一区二区精品| www.日本精品| 日韩禁在线播放| 欧美第一视频| 日本一区免费| 日韩极品在线观看| 国产毛片欧美毛片久久久| 91精品91久久久中77777| 国产一二在线观看| 国产精品综合久久久| 久久婷婷蜜乳一本欲蜜臀| 亚洲免费av一区| 国产精品超碰97尤物18| 一起草av在线| 美女福利视频一区| 成人av资源网址| 欧美 日韩 国产在线观看| 久久网站最新地址| 夜夜躁日日躁狠狠久久av| 在线播放精品一区二区三区 | 亚洲国产精品视频| 少妇av在线播放| 奇米一区二区三区四区久久| 国产精品嫩草影院在线看| 中文久久久久久| 综合久久国产九一剧情麻豆| 国产成人三级一区二区在线观看一 | 91色中文字幕| 亚洲大片av| 久久av无码精品人妻系列试探| 欧美性生活久久| 国产日产一区二区| 国产女人水真多18毛片18精品 | 91精品国产综合久久久久久蜜臀| 99精品网站| www.美色吧.com| 日韩欧美在线免费| 免费黄色电影在线观看| 国产精品二区三区四区| 久久久人人人| 特一级黄色录像| 日韩av中文字幕在线播放| 四虎4545www精品视频| 日韩不卡一二区| 91麻豆国产精品久久| 一区二区三区在线免费观看视频| 欧美成人精品在线播放| 国产99久久久国产精品成人免费| 国产又大又黄又粗又爽| 亚洲在线中文字幕| 成人资源www网在线最新版| 高清视频一区| 蜜臀av性久久久久蜜臀av麻豆| 欧美三根一起进三p| 亚洲欧洲偷拍精品| 日本一区二区三区播放| 日韩在线xxx| 亚洲一卡二卡三卡四卡五卡| 伊人免费在线| 久久影视中文粉嫩av| 国产一区二区精品久久91| 亚洲成人第一网站| 欧美激情亚洲精品| 91欧美国产| 亚洲成人黄色av|