国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 開發(fā) > HTML5 > 正文

HTML5 移動頁面自適應(yīng)手機屏幕寬度詳解

2024-07-21 02:02:46
字體:
供稿:網(wǎng)友

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

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

首先解釋該標(biāo)簽的含義:

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

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

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

 <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>  

 對于此標(biāo)簽還有以下需要分享:

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

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

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

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

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

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

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

解釋一下為什么把100作為一個縮放比例,用10或1不是更方便嗎,這是因為大多數(shù)瀏覽器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的方法,我們要解決的問題是適應(yīng)手機屏幕,這個媒體查詢正是為解決這個問題而生,媒體查詢的功能就是為不同的媒體設(shè)置不同的css樣式,這里的“媒體”包括頁面尺寸,設(shè)備屏幕尺寸等,比如我們要為寬度小于480px的頁面中的class="icon"的元素設(shè)置樣式,可以這樣寫,@media screen and (max-width=480px) {.icon{ some styles }};這里僅介紹這種思路,關(guān)于媒體查詢的詳細(xì)用法請參閱css手冊。

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

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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
国产视频资源| 精品国语对白精品自拍视| 亚洲欧美国产另类首页| 国产一级二级在线| 黄网在线免费| 国产麻豆综合视频在线观看| 免费的黄网站在线观看| 蜜桃av网站| 日本中文字幕在线观看| 国产一卡二卡3卡4卡四卡在线| 国产鲁鲁视频在线观看免费| 中文字幕在线第一页| 久久精品最新免费国产成人| 成人精品福利| 国产成免费视频| av网站大全在线观看| 超碰免费在线观看| 96久久久久久| 国产在线中文字幕| 精品一区二区三区高清免费不卡 | www.毛片| 中文字幕视频免费在线观看| 91免费日韩| 91caoporn在线| 夜夜操com| 国产网站免费观看| 四虎成人精品在永久在线观看| 黄网在线免费| 亚洲欧美日韩一区成人| 国产午夜在线| 国产免费麻豆视频| 日本高清不卡中文字幕| 国产精品视频福利一区二区 | 丁香视频免费观看| 中文日本在线观看| 中文字幕网在线| 超碰在线影院| 亚洲久草视频| 在线三级中文| 国产aa视频| 国产www网站| 国产精品视频一区二区三区麻豆| 国产美女在线一区二区三区| yjizz视频网站在线播放| 精品网站www| 国产成人亚洲综合小说区| 国产秒拍福利视频露脸| 午夜性爽视频男人的天堂| 91九色在线看| 中文日本在线观看| 在线观看精品一区二区三区| 在线观看av的网站| 精品街拍一区二区| 亚洲精品成人a| 日本动漫理论片在线观看网站| 精品999视频| 在线国产1区| gogo在线高清视频| 国产中文在线| 国产xxxx做受性欧美88| 99久热re在线精彩视频| 一色桃子av在线| 日本成人免费网站| 丁香花高清视频完整版在线观看| 中文字幕网在线| 亚洲综合在线免费| 六月天色婷婷| 中文字幕有码在线视频| 国产午夜视频| av在线首页| 日本中文字幕视频| av高清在线| 国产在线www| 国产91久久久久蜜臀青青天草二| www.三级.com| 国产黄色在线观看| 免费看ww视频网站入口| 国产素人视频在线观看| 日本成a人片在线观看| 国产网站av| 男人操女人免费网站| 国产福利小视频在线| av网站大全在线观看| 国内外激情在线| 中文av字幕| 中文字幕在线影视资源| 99热99re6国产在线播放| 丁香视频免费观看| www.操操操.com| 精品麻豆国产| 国产精品外围在线观看| 国产不卡在线| 国产三级视频在线| 成人精品一区二区三区免费| 牛牛热在线视频| eeuss影院www在线播放| 2020国产在线视频| 国产中文在线观看| jlzzjlzz欧美| 青青艹在线视频| heisi视频网在线观看| 精品成人免费自拍视频| 国产青青草在线| 五月婷婷视频在线观看| 青青草免费在线视频| 久久久久久久久亚洲精品| 人xxxx性xxxxx欧美| 欧美aaa一级片| 狠狠操天天操夜夜操| 欧美人成在线观看网站高清| www555久久| 丁香视频五月| 国产农村av| 国产一级粉嫩xxxx| 国产成人精品久久一区二区小说 | 国产毛片在线看| 91sp网站在线观看入口| 九九精品九九| 最近中文字幕在线中文视频| 国产精品一区牛牛影视| 最好看更新中文字幕| 天堂中文资源在线| 国产精品久久久久久久久鸭| 精品无吗乱吗av国产爱色| 在线视频观看国产| 久久精品最新免费国产成人| 午夜在线小视频| 91中文字幕| 欧美96在线| 国产videos| 免费男女羞羞的视频网站中文字幕| 九九在线免费视频| 国产深夜福利| 热99在线观看| 国产极品视频| 青草av在线| 国产丝袜视频在线播放| 日本在线免费中文字幕| 午夜视频99| 青草视频在线播放| 国产成人精品男人的天堂538| 欧美日韩在线中文字幕| 国产黄在线看| 天天爱天天做色综合| 中文天堂av| 国产午夜电影| 福利视频网址导航| 依依成人在线| 2021av在线| 国产精品剧情一区二区在线观看| www.狠狠操| 伊人免费在线| √天堂资源中文www| 天天av综合网| 国产在线观看a视频| 亚洲尤物在线视频| 2020国产在线视频| 国产经典自拍视频在线观看| 最近中文字幕mv免费高清视频8| 日本久久网站| 青娱乐在线视频观看| 亚洲天堂久久久| 亚洲欧美国产另类首页| 在线三级av| www.av在线视频| www.五月色.com| av人人综合网| 亚洲一道本在线| 日本亚洲欧美| 欧美精品小视频| 国产精品探花在线| 国产女主播在线| 91亚洲欧美| 精品成人免费自拍视频| 精品av中文字幕在线毛片| 在线视频中文字幕| eeuss影院在线观看第一页| 奇米影视狠狠狠| 成年网站免费入口在线观看| 四虎成人欧美精品在永久在线| 亚洲成人福利| 亚洲私人影吧| 99久久国产视频| 最新天堂资源在线| eeuss影院网站免费观看| 99热最新网址| 中文字幕网站视频在线| 国产精品天堂| 国产高清视频在线观看| 91精选福利| 女人色在线免费视频| 福利视频网站导航| 国产二区视频在线观看| 中文乱码字幕高清在线观看| 日本免费视频www| 大香伊人中文字幕精品| 国产免费a∨片在线观看不卡| 九九99九九精彩| 国产成人亚洲综合小说区| 欧美视频免费一区二区三区|