亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > HTML5 > 正文

HTML5 移動頁面自適應手機屏幕寬度詳解

2024-07-21 02:02:46
字體:
來源:轉載
供稿:網友

網上關于這方面的文章有很多,重復的東西本文不再贅述,僅提供思路,并解釋一些其他文章講述模糊的地方。 

1、使用meta標簽,這也是普遍使用的方法,理論上講使用這個標簽是可以適應所有尺寸的屏幕的,但是各設備對該標簽的解釋方式及支持程度不同造成了不能兼容所有瀏覽器或系統。

首先解釋該標簽的含義:

<meta name="viewport" content="width=device-width,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/>

如果你完全不了解這個標簽的使用需要先百度一下。

解釋:content中的“width” 這個width指的是什么寬度,我看過的文章對這個都沒有解釋的很清楚,有幾個備選:虛擬窗口的寬度、手機屏幕的寬度、還是頁面的寬度等等?經試驗這個指的是虛擬窗口的寬度。了解寬度之后,對后續的各種scale,就應該知道是誰與誰的比例,是 虛擬窗口寬度 / 頁面寬度,這樣就會有問題出現安卓設備尺寸差異很大光主流的就有寬度為 320 480 720 1080 等各種尺寸而以上標簽只能支持一種尺寸,當然有些瀏覽器會自動縮放使其適應屏幕,但這不是統一標準,正確的做法是用js動態生成此標簽,當然,應該先獲取屏幕尺寸。

 <script type="text/javascript">    var phoneWidth = parseInt(window.screen.width);    var phoneScale = phoneWidth/640;    var ua = navigator.userAgent;    if (/Android (/d+/./d+)/.test(ua)){      var version = parseFloat(RegExp.$1);      if(version>2.3){        document.write(‘<meta name="viewport" content="width=640, minimum-scale = ‘+phoneScale+‘, maximum-scale = ‘+phoneScale+‘, target-densitydpi=device-dpi">‘);      }else{        document.write(‘<meta name="viewport" content="width=640, target-densitydpi=device-dpi">‘);      }    } else {      document.write(‘<meta name="viewport" content="width=640, user-scalable=no, target-densitydpi=device-dpi">‘);    }  </script>  

 對于此標簽還有以下需要分享:

1)、user-scalable=no就一定可以保證頁面不可以縮放嗎?NO,有些瀏覽器不吃這一套,還有一招就是minimum-scale=1.0, maximum-scale=1.0 最大與最小縮放比例都設為1.0就可以了。

2)、initial-scale=1.0   初始縮放比例受user-scalable控制嗎?不一定,有些瀏覽器會將user-scalable理解為用戶手動縮放,如果user-scalable=no,initial-scale將無法生效。

3)、手機頁面可以觸摸移動,但是如果有需要禁止此操作,就是頁面寬度等于屏幕寬度是頁面正好適應屏幕才可以保證頁面不能移動。

4)、如果頁面是經過縮小適應屏幕寬度的,會出現一個問題,當文本框被激活(獲取焦點)時,頁面會放大至原來尺寸。

以上是使用viewport標簽的一些小體會,分享給大家。

3、百分比法,首先應明確一個概年,CSS中的百分比中的百指的是什么,我告訴你指的是父元素,所有百分比都是這樣的。子元素寬度50%,那么父元素的寬度就是百,子元素的padding-left:50%,父元素的寬度是百,子元素的margin-top:20%,那么父元素的高是百。所以body默認寬度是屏幕寬度(PC中指的是瀏覽器寬度)子孫元素按百分比定位(或指定尺寸)就可以了,這只適合布局簡單的頁面,復雜的頁面實現很困難。

4、使用css3單位rem,有人這樣解釋rem,root-em,就是根部的em,想必em大家都懂的,那么rem就是將根節點html的font-size的值作為整個頁面的基準尺寸,默認html的font-size是16px,即1rem=16px,如果某div寬度為32px你可以設為2rem。當我們把html的font-size設為20px時,1rem=20px,那么32px=1.6rem了。到這里我們也就了解了rem的用法了,那么怎么用rem來實現不同尺寸屏幕的自適應呢?在頁面載入開始時首先判斷window的寬度(是window的寬度($(window).width()),不是屏幕分辯率的寬度(screen.width),兩者的差別請自行查閱),假設寬度為W,一個div在寬度為640px的設計稿的下的寬度為dW1,這樣如果html的font-size為100px,那么這個div的寬度用rem表示是多少呢?計算:div寬度dW2=dW1/100,px與rem之間很好換算,除以100就可以,這是假定屏幕寬度為640的,而不同寬度的屏幕怎么處理,為了能保證換算容易那就要為html設置一個合適的font-size,計算:100 / 640 = fontSize / W, fontSize = W / 640 * 100 = W / 6.4;

解釋一下為什么把100作為一個縮放比例,用10或1不是更方便嗎,這是因為大多數瀏覽器font-size的最小值為12px,所以只能用100了。所以會在頭部加上這個JS代碼

<script type="text/javascript">  var html = document.querySelector(‘html‘);  var rem = html.offsetWidth / 6.4;  html.style.fontSize = rem + "px";</script>  

5、媒體查詢,媒體查詢也是css3的方法,我們要解決的問題是適應手機屏幕,這個媒體查詢正是為解決這個問題而生,媒體查詢的功能就是為不同的媒體設置不同的css樣式,這里的“媒體”包括頁面尺寸,設備屏幕尺寸等,比如我們要為寬度小于480px的頁面中的class="icon"的元素設置樣式,可以這樣寫,@media screen and (max-width=480px) {.icon{ some styles }};這里僅介紹這種思路,關于媒體查詢的詳細用法請參閱css手冊。

綜上,至今,我沒有找到一種完全適應各種屏幕的方法,只能根據頁面特點選擇不同的方法,多種方法靈活運用,才是王道。

通過此文,希望能幫助大家解決HTML5 自適應手機屏幕寬度的問題,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
26uuu国产精品视频| 久久久亚洲天堂| 91欧美激情另类亚洲| 国产亚洲欧美日韩美女| 亚洲成人网在线| 成人在线国产精品| 亚洲天堂男人天堂女人天堂| 中文字幕视频一区二区在线有码| 国产亚洲精品91在线| 97在线视频免费播放| 青青草一区二区| 亚洲第一网站男人都懂| 国产99视频在线观看| 奇米一区二区三区四区久久| 91在线看www| 在线视频免费一区二区| 国产中文日韩欧美| 日韩最新中文字幕电影免费看| 久久综合五月天| 亚洲视频精品在线| 日本精品免费一区二区三区| 欧美成人激情在线| 在线免费观看羞羞视频一区二区| 国产精品尤物福利片在线观看| 久久久久久尹人网香蕉| 国产亚洲欧美视频| 亚洲精品一区av在线播放| 国产精品入口夜色视频大尺度| 欧美激情xxxx性bbbb| 色婷婷久久一区二区| 国产欧美精品久久久| 日韩精品在线免费观看视频| 91美女片黄在线观| 国产精品高清在线观看| 日韩av电影在线免费播放| 欧美乱大交xxxxx另类电影| 久久亚洲精品中文字幕冲田杏梨| 欧美成人性生活| 日韩激情av在线免费观看| 国产精品中文字幕在线观看| 欧美性生活大片免费观看网址| 亚洲国产欧美一区| 成人在线国产精品| 国产精品狠色婷| 亚洲精品国产拍免费91在线| 2019中文在线观看| 国产精品久久久久久久久| 欧美日韩在线看| 久久久久久九九九| 2024亚洲男人天堂| 97视频在线观看免费高清完整版在线观看| 国产亚洲a∨片在线观看| 日韩欧美国产黄色| 国产精品精品一区二区三区午夜版| 欧美在线视频观看| 一区二区福利视频| 欧美一级电影在线| 成人免费淫片视频软件| 欧美影院久久久| 欧美日韩国产麻豆| 亚洲人精品午夜在线观看| 欧美情侣性视频| 狠狠爱在线视频一区| 国产成人精品电影久久久| 国产精品69av| 国产精品扒开腿爽爽爽视频| 欧美国产精品人人做人人爱| 黄色成人在线免费| 91av在线不卡| 日韩成人激情影院| 久久99热精品这里久久精品| 国产精品中文字幕在线观看| 亚洲第一精品夜夜躁人人爽| 午夜精品美女自拍福到在线| 精品少妇一区二区30p| 亚洲午夜精品久久久久久久久久久久| 亚洲精品视频在线播放| 欧美激情一区二区三区久久久| 亚洲精品视频免费| 91高清在线免费观看| 91干在线观看| 在线观看日韩欧美| 第一福利永久视频精品| 深夜福利亚洲导航| 精品国产一区二区三区四区在线观看| 日韩av电影在线播放| 国产日韩精品综合网站| 欧美在线一区二区视频| 亚洲欧洲免费视频| 亚洲白拍色综合图区| 亚洲精品国产精品国自产观看浪潮| 97精品一区二区视频在线观看| 午夜精品福利在线观看| 国产精品高精视频免费| 日韩av在线免费| 91国语精品自产拍在线观看性色| 国精产品一区一区三区有限在线| 久久精品亚洲94久久精品| 亚洲国产精品人人爽夜夜爽| 国产精品黄色影片导航在线观看| 97在线视频国产| 亚洲成人精品av| 啊v视频在线一区二区三区| 国产成人一区二区三区小说| 国产主播在线一区| 国产一区二区三区三区在线观看| 日韩hd视频在线观看| 日韩视频―中文字幕| 亚洲第一男人av| 91精品视频观看| 亚洲国产精品久久久久秋霞不卡| 亚洲精品免费一区二区三区| 亚洲国产精品久久| 国产精品xxx视频| 亚洲在线一区二区| 欧美超级免费视 在线| 亚洲女人初尝黑人巨大| 91久久精品日日躁夜夜躁国产| 中文字幕日韩在线视频| 国产精品国产自产拍高清av水多| 欧美高清自拍一区| 亚洲欧美综合精品久久成人| 中文字幕最新精品| 日韩在线观看免费| 国产有码在线一区二区视频| 国产精品99久久久久久白浆小说| 欧美极品少妇全裸体| 日韩在线播放视频| 日韩精品在线免费播放| 高清视频欧美一级| 欧美日韩高清区| 国产精品一二区| 国产精品精品久久久久久| 国产69精品久久久久久| 茄子视频成人在线| 国产欧美精品一区二区三区介绍| 亚洲一区二区中文字幕| 国产精品一区专区欧美日韩| 国产精品久久久久久网站| 亚洲欧美另类中文字幕| 国产精品99导航| 欧美极品少妇xxxxⅹ喷水| 91高清免费在线观看| 一区二区三区久久精品| 欧美多人乱p欧美4p久久| 亚洲风情亚aⅴ在线发布| 欧美大尺度在线观看| 亚洲天堂av女优| 久久精品国产亚洲精品| 亚洲japanese制服美女| 色噜噜狠狠狠综合曰曰曰| 亚洲第一天堂av| 日韩精品中文字幕久久臀| 成人精品一区二区三区| 琪琪亚洲精品午夜在线| 亚洲综合在线小说| 久久久精品影院| 综合久久五月天| 久久精品视频导航| 欧美国产日韩免费| 尤物yw午夜国产精品视频| 国产91九色视频| 日韩欧美在线第一页| 欧美精品第一页在线播放|