最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2016年09月22日 11:59:11   投稿:lqh  
這篇文章主要介紹了HTML5 移動頁面自適應手機屏幕寬度的相關資料,需要的朋友可以參考下

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

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

首先解釋該標簽的含義:

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

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

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

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

4、使用css3單位rem,有人這樣解釋rem,root-em,就是根部的em,想必em大家都懂的,那么rem就是將根節(jié)點html的font-size的值作為整個頁面的基準尺寸,默認html的font-size是16px,即1rem=16px,如果某div寬度為32px你可以設為2rem。當我們把html的font-size設為20px時,1rem=20px,那么32px=1.6rem了。到這里我們也就了解了rem的用法了,那么怎么用rem來實現(xiàn)不同尺寸屏幕的自適應呢?在頁面載入開始時首先判斷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不是更方便嗎,這是因為大多數(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的方法,我們要解決的問題是適應手機屏幕,這個媒體查詢正是為解決這個問題而生,媒體查詢的功能就是為不同的媒體設置不同的css樣式,這里的“媒體”包括頁面尺寸,設備屏幕尺寸等,比如我們要為寬度小于480px的頁面中的class="icon"的元素設置樣式,可以這樣寫,@media screen and (max-width=480px) {.icon{ some styles }};這里僅介紹這種思路,關于媒體查詢的詳細用法請參閱css手冊。

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

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

相關文章

  • Alfred?+?Gitee搭建免費圖床的使用實例詳解

    Alfred?+?Gitee搭建免費圖床的使用實例詳解

    這篇文章主要為大家介紹了Alfred?+?Gitee搭建免費圖床的使用實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • Git基礎學習之分支操作的示例詳解

    Git基礎學習之分支操作的示例詳解

    這篇文章主要為大家詳細介紹了Git基礎學習中分支的基本操作,文中的示例代碼講解詳細,對我們了解Git有一定的幫助,感興趣的小伙伴可以跟隨小編一起學習一下
    2022-10-10
  • GitHub入門教程 手把手教你最簡單的開源項目托管

    GitHub入門教程 手把手教你最簡單的開源項目托管

    這篇文章主要介紹了GitHub入門教程 手把手教你最簡單的開源項目托管,需要的朋友可以參考下
    2016-12-12
  • String與string的區(qū)別(注意大小寫)

    String與string的區(qū)別(注意大小寫)

    String與string的區(qū)別(注意大小寫)
    2010-06-06
  • 油猴腳本編寫教程詳解

    油猴腳本編寫教程詳解

    油猴腳本(Tampermonkey)是一個非常流行的瀏覽器擴展,它可以運行由廣大社區(qū)編寫的擴展腳本,來實現(xiàn)各式各樣的功能,常見的去廣告、修改樣式文件、甚至是下載視頻,今天給大家介紹油猴腳本編寫教程,感興趣的朋友一起看看吧
    2020-02-02
  • 詳細HTTP協(xié)議的前世今生

    詳細HTTP協(xié)議的前世今生

    超文本傳輸協(xié)議(Hypertext Transfer Protocol,HTTP)是一個簡單的請求-響應協(xié)議,它通常運行在TCP之上。它指定了客戶端可能發(fā)送給服務器什么樣的消息以及得到什么樣的響應。請求和響應消息的頭以ASCII形式給出;而消息內(nèi)容則具有一個類似MIME的格式
    2021-06-06
  • Git下載與環(huán)境變量配置方法

    Git下載與環(huán)境變量配置方法

    前幾天在寫博客 手把手教你用Hexo + github 搭建自己博客的時候,經(jīng)常需要用到一些git操作,截了好多圖,于是就想干脆整理成一系列的git 教程,總結如下,需要的朋友可以參考下
    2017-10-10
  • URL 長度有限制嗎?

    URL 長度有限制嗎?

    眾所周知, 傳遞小量參數(shù)(在沒有其他原因,例如隱藏參數(shù)值的情況下)推薦使用GET方法,傳遞大量參數(shù)推薦使用POST方法。原因是什么呢?
    2009-06-06
  • git如何從某個分支的指定歷史版本中創(chuàng)建新分支

    git如何從某個分支的指定歷史版本中創(chuàng)建新分支

    這篇文章主要介紹了git如何從某個分支的指定歷史版本中創(chuàng)建新分支問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Win10環(huán)境下?編譯?和?運行?x264的詳細過程

    Win10環(huán)境下?編譯?和?運行?x264的詳細過程

    這篇文章主要介紹了Win10環(huán)境下編譯和運行x264的詳細過程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-10-10

最新評論

龙泉市| 涟源市| 景东| 福州市| 方山县| 中西区| 阿克陶县| 方山县| 敦煌市| 望谟县| 拜泉县| 赞皇县| 保山市| 增城市| 张家口市| 南溪县| 华坪县| 天台县| 松阳县| 巨野县| 和政县| 昭平县| 永靖县| 柳江县| 汉沽区| 日土县| 朝阳区| 冷水江市| 东海县| 社旗县| 墨江| 吐鲁番市| 琼结县| 阜新| 正镶白旗| 炎陵县| 资中县| 东安县| 温州市| 济阳县| 黑山县|