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

移動開發(fā)之自適應(yīng)手機屏幕寬度

 更新時間:2016年11月23日 15:21:25   投稿:lqh  
這篇文章主要介紹了移動開發(fā)之自適應(yīng)手機屏幕寬度的相關(guān)資料,網(wǎng)上關(guān)于這方面的文章有很多,重復(fù)的東西本文不再贅述,僅提供思路,并解釋一些其他文章講述模糊的地方,需要的朋友可以參考下

移動開發(fā)之自適應(yīng)手機屏幕寬度

1、使用meta標簽,這也是普遍使用的方法,理論上講使用這個標簽是可以適應(yīng)所有尺寸的屏幕的,但是各設(shè)備對該標簽的解釋方式及支持程度不同造成了不能兼容所有瀏覽器或系統(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,就應(yīng)該知道是誰與誰的比例,是 虛擬窗口寬度 / 頁面寬度,這樣就會有問題出現(xiàn)安卓設(shè)備尺寸差異很大光主流的就有寬度為 320 480 720 1080 等各種尺寸而以上標簽只能支持一種尺寸,當然有些瀏覽器會自動縮放使其適應(yīng)屏幕,但這不是統(tǒng)一標準,正確的做法是用js動態(tài)生成此標簽,當然,應(yīng)該先獲取屏幕尺寸。

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

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)一個問題,當文本框被激活(獲取焦點)時,頁面會放大至原來尺寸。

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

2、第二種自適應(yīng)屏幕尺寸的方法是將頁面做成980寬度,在沒有viewport標簽的情況下,移動設(shè)備屏幕范圍會顯示頁面980的寬度,如果頁面大于980,則在屏幕范圍內(nèi)顯示頁面一部分,如果頁面小于980,則頁面居中兩側(cè)顯示空白,那么你猜,如果頁面寬度等于980會出現(xiàn)什么情況呢?

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

4、使用css3單位rem,有人這樣解釋rem,root-em,就是根部的em,想必em大家都懂的,那么rem就是將根節(jié)點html的font-size的值作為整個頁面的基準尺寸,默認html的font-size是16px,即1rem=16px,如果某div寬度為32px你可以設(shè)為2rem。當我們把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了。

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

  之前介紹一篇文章是:響應(yīng)式web實戰(zhàn)總結(jié) 已經(jīng)介紹了一些知識點,這里就不多介紹了;我們這邊來了解下如何使用媒體查詢寫不同的css樣式;針對響應(yīng)式web設(shè)計開發(fā),使用媒體查詢來適應(yīng)不同的手機屏幕樣式開發(fā)時,我們需要寫不同的樣式,為此我們來分享下我個人開發(fā)響應(yīng)式web頁面的經(jīng)驗;針對目前手機的獨立像素有320,360,384,400,還有iphone6+是414的獨立像素,因此我們只需要針對目前這幾種匹配即可;如下:

         1.針對手機獨立像素是360 ~399等屏幕的寬度

  /*

   * 但是邊距 字體大小等還是安裝360px來計算

   */

   @media (min-width:360px) and (max-width: 399px) {}

     2. 針對手機獨立像素是320~359之間的

 /* min-width:320px

   * 針對設(shè)備獨立像素為320px 的css

   * min-width:320 和 max-width:359之間

   */  @media (min-width: 320px) and (max-width:359px){}

      3. 針對設(shè)備獨立像素為400px以上的樣式。

 /*

    * 針對設(shè)備獨立像素為400px,邊距等等都按400px來計算

    */

   @media (min-width: 400px) and (max-width:450px){}

      4. 針對設(shè)備獨立像素為640px ~ 999px的css

 /* min-width:640px

    * 針對設(shè)備獨立像素為640px 的css

    * min-width:640 和 max-width:999之間

    * 邊距等按640px來計算

    */

   @media (min-width: 640px) and (max-width:999px){}

      5. 但是在PC端,我們?yōu)榱诉m應(yīng)PC端,所以針對寬度為1000以上也做一個顯示處理。

 /* 最小寬度1000樣式

   *為了適應(yīng)PC端 所以PC端在設(shè)計時候 默認以1000px來設(shè)計的

   */

   @media screen and (min-width:1000px) {}

一:使用rem來設(shè)置字體

       為了方便計算字體,我們來設(shè)置瀏覽器10px,我們都知道瀏覽器默認的像素是16px,因此我們需要對html{font-size:62.5%;} // 10 / 16 = 62.5%;

首先假如設(shè)計搞在移動端上是按照750px設(shè)計稿上的話,假如字體在750px下字體大小我們使用rem來寫大小;那么他們的字體大小在各個獨立像素下如下計算:

針對設(shè)備獨立像素為640px ~ 999px的css

 @media (min-width:640px) and (max-width: 999px) {

      /* 750/640 = 1.17*/

      html{font-size: 53.42%;} /*62.5% / 1.17 */

   }

   @media (min-width: 400px) and (max-width:450px){

     /* 750 / 400 = 1.875 */

     html{font-size:33.33% } /* 62.5% / 1.875 */

   }

   @media (min-width:360px) and (max-width: 399px) {

      /* 750 / 360 = 2.08 */

     html{font-size:30%}  /* 62.5% / 2.08 */

   }

   @media (min-width: 320px) and (max-width:359px){

     /* 750/320 = 2.34 */

     html{font-size: 26.7%} /* 62.5 / 2.34 */

   }

二: 針對寬度,高度,background-size, margin及padding的計算方法;

     假如在750px下的寬度是132px;高度是132px;background-size:132px 132px; margin:20px;Padding:20px;

     針對設(shè)備獨立像素為640px ~ 999px的css

  @media (min-width:640px) and (max-width: 999px) {

      /* 750/640 = 1.17*/

      html{font-size: 53.42%;} /*62.5% / 1.17 */

      // 下面的屬性都是 本身的像素 / 1.17 得來的

     width: 112.82px;   // 132 / 1.17

     height:112.82px;   // 132 / 1.17

     background-size:112.82px 112.82px; // 132 / 1.17

     margin:17.09px;  // 20 / 1.17

     padding:17.09px; // 20 / 1.17

   }

  @media (min-width: 400px) and (max-width:450px){

     /* 750 / 400 = 1.875 */

     html{font-size:33.33% } /* 62.5% / 1.875 */

     // 下面的屬性都是 本身的像素 / 1.875 得來的

     width: 70.4px;   // 132 / 1.875

     height: 70.4px;   // 132 / 1.875

     background-size: 70.4px 70.4px; // 132 / 1.875

     margin:10.67px;  // 20 / 1.875

     padding: 10.67px; // 20 / 1.875

  }

  @media (min-width:360px) and (max-width: 399px) {

     /* 750 / 360 = 2.08 */

     html{font-size:30%}  /* 62.5% / 2.08 */

     // 下面的屬性都是 本身的像素 / 2.08 得來的

     width: 63.46px;   // 132 / 2.08

     height: 63.46px;   // 132 / 2.08

     background-size: 63.46px 63.46px; // 132 / 2.08

     margin:9.62px;  // 20 / 2.08

     padding: 9.62px; // 20 / 2.08

  }

  @media (min-width: 320px) and (max-width:359px){

     /* 750/320 = 2.34 */

    html{font-size: 26.7%} /* 62.5 / 2.34 */

    width: 56.41px;   // 132 / 2.34

    height: 56.41px;   // 132 / 2.34

    background-size: 56.41px 56.41px; // 132 / 2.34

    margin:8.55px;  // 20 / 2.34

    padding: 8.55px; // 20 / 2.34

  }

但是有時候在小屏幕下字體太小了,使用戶看起來太吃力,我們可以針對小屏幕下適當?shù)舸笠稽c即可;

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • JavaScript架構(gòu)localStorage特殊場景下二次封裝操作

    JavaScript架構(gòu)localStorage特殊場景下二次封裝操作

    這篇文章主要為大家介紹了JavaScript架構(gòu)localStorage在特殊場景下的二次封裝操作,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • 微信小程序 跳轉(zhuǎn)傳遞數(shù)據(jù)的實例

    微信小程序 跳轉(zhuǎn)傳遞數(shù)據(jù)的實例

    這篇文章主要介紹了微信小程序 跳轉(zhuǎn)傳遞數(shù)據(jù)的實例的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • Javascript作用域與閉包詳情

    Javascript作用域與閉包詳情

    相信絕大多數(shù)同學都聽過閉包這個概念,但閉包具體是什么估計很少有人能夠說的很詳細。說實話閉包在我們平時開發(fā)中應(yīng)該是很常見的,并且在前端面試中閉包也是常見的重要考點,在學習閉包之前我們先來看看作用域與作用域鏈,因為這是閉包的關(guān)鍵。
    2021-10-10
  • 微信小程序 SocketIO 實例講解

    微信小程序 SocketIO 實例講解

    這篇文章主要介紹了微信小程序 SocketIO 的相關(guān)資料,這里給大家提供了一個簡單實例,需要的朋友可以參考下
    2016-10-10
  • JavaScript的八種數(shù)據(jù)類型

    JavaScript的八種數(shù)據(jù)類型

    這篇文章主要分享的是JavaScript的八種數(shù)據(jù)類型,ES5的時候,我們大家認知的數(shù)據(jù)類型是?6種的,但是ES6?中新增了一種?Symbol,谷歌67版本中還出現(xiàn)了一種?bigInt,是指安全存儲、操作大整數(shù),像下面文章我可沒就來看看這八種數(shù)據(jù)類型的詳細介紹吧
    2022-01-01
  • JavaScript中MutationObServer監(jiān)聽DOM元素詳情

    JavaScript中MutationObServer監(jiān)聽DOM元素詳情

    這篇文章主要給大家分享的是?JavaScript中MutationObServer監(jiān)聽DOM元素詳情,DOM的MutationObServer接口,可以在DOM被修改時異步執(zhí)行回調(diào)函數(shù),我的理解就是可以監(jiān)聽DOM修改。下面來看看文章的詳細內(nèi)容,需要的朋友可以參考一下
    2021-11-11
  • 分享5個JS?高階函數(shù)

    分享5個JS?高階函數(shù)

    這篇文章主要給大家分享了5個JS高階函數(shù),在JavaScript中,函數(shù)實際上也是一個數(shù)據(jù),也就是說函數(shù)也可以賦值給一個變量。本篇文章就來介紹一些JavaScript中的高階函數(shù)的用法,具有一定的參考價值,需要的朋友可以參考一下
    2021-12-12
  • 微前端框架qiankun源碼剖析之上篇

    微前端框架qiankun源碼剖析之上篇

    這篇文章主要為大家介紹了微前端框架qiankun的源碼剖析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • 微信小程序 下拉菜單的實現(xiàn)

    微信小程序 下拉菜單的實現(xiàn)

    這篇文章主要介紹了微信小程序 下拉菜單的實現(xiàn)的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • 獨立使用umi的核心插件模塊示例詳解

    獨立使用umi的核心插件模塊示例詳解

    這篇文章主要為大家介紹了獨立使用?umi?的核心插件模塊示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01

最新評論

北流市| 南平市| 辽宁省| 库车县| 芜湖县| 芜湖县| 新竹市| 噶尔县| 巫溪县| 如东县| 大邑县| 南丰县| 东台市| 故城县| 紫金县| 诸暨市| 噶尔县| 榆中县| 石阡县| 赞皇县| 乾安县| 兰考县| 云浮市| 沙田区| 高雄县| 娱乐| 涿州市| 望奎县| 海南省| 常熟市| 浙江省| 大荔县| 喀什市| 乐清市| 宁南县| 阳谷县| 高要市| 百色市| 榕江县| 兰坪| 紫金县|