移動端網頁開發所要具備的基礎知識二(視口)

來源:互聯網
上載者:User

標籤:之間   開發人員   建立   定義   initial   under   user   返回   引入   

 

  做移動端網頁,首先必須瞭解一些基本的概念。

  最重要的是瞭解像素和視口。

  我在上一篇文章中已經介紹了像素,這次我們再來談談視口。

  視口

  案頭瀏覽器中,瀏覽器視窗就是約束你的css布局視口(又稱初始包含塊)。它是所有css百分比寬度推算的根源,它的作用是給css布局限制了一個最大寬度,視口的寬度和瀏覽器視口寬度一致。

  但是在移動端,情況就很複雜了。

  1??布局視口(layout viewport)

  瀏覽器廠商為了讓使用者在小螢幕下網頁也能很好地顯示,所以把視口寬度設定地很大,一般在768px~1024px之間,最常見的寬度是980px。

  所以,在手機上,視口與移動端瀏覽器螢幕寬度不再是相關聯,是完全獨立的,這個瀏覽器廠商定的視口被稱為布局視口。

  

  超過螢幕寬度將出現橫向捲軸。

  可以這樣設定布局視口的寬度:

  <meta name="viewport" content="width=640">

  document.documentElement.clientWidth/Height返回布局視口的尺寸。

  

  視覺視口(visual viewport)

  視覺視口是使用者正在看到的網頁的地區,大小是螢幕中css像素的數量。

  

  window.innerWidth/Height返回視覺視口的尺寸。

  

  理想視口

  布局視覺明顯對使用者是不友好的,完全忽略了手機本身的尺寸。所以蘋果引入了理想視口的概念,它是對裝置來說最理想的布局視口尺寸。理想視口對使用者來說是最理想的,使用者進入頁面的時候不需要縮放。

  所謂的(最理想的寬度)多少合適呢?其實,如果我們把布局視口的寬度改成螢幕的寬度就不用縮放了,可以這樣設定告訴瀏覽器使用它的理想視口:

  <meta name="viewport" content="width=device-width">

  定義理想視口是瀏覽器的事情,並不能簡單地認為是開發人員定義的,開發人員只能使用。

  screen.width/height返回理想視口的尺寸,有嚴重相容性問題的,可能返回兩種值:

  1、理想視口的尺寸(下載瀏覽器)

  2、螢幕的裝置像素尺寸(內建瀏覽器)

  Screen size tests和Understanding viewport可以測試你的裝置的screen.width值,同一裝置的不同瀏覽器返回的值可能是不一樣的。這一情況主要發生在預設瀏覽器和下載瀏覽器(如UC、Chrome)之間。

  下載瀏覽器全部返回的都是理想視口尺寸。

  

  縮放

  縮放與裝置像素、css像素的關係

  縮放是在放大或縮小css像素,比如一個寬度為200px的元素無論放大多少,還是200個css像素。但是因為這些像素被放大了,所以css像素也就跨越了更多的裝置像素,縮小則相反。

  

  縮放與視口

  縮放會影響視覺視口的尺寸。

  頁面被使用者放大,視覺視口內css像素數量減少,被使用者縮小,視覺視口內css像素數量增多。

  使用者縮放不會影響布局視口。

 

  縮放比例

  我們在開發人員工具中可以在這裡查看縮放比例:

  

  這裡的0.3是相對於理想視口的。

  在下載瀏覽器中,可以這麼算(理想視口與視覺視口的比)

  zoom level=screen.width/window.innerWidth

  

  禁止縮放

  <meta name="viewport" content="user-scalable=no">

 

  設定縮放

  <meta name=viewport" content="initial-scale=2">

  使用initial-scale有一個副作用:同時也會將布局視口的尺寸設定為縮放後的尺寸。所以initial-scale=1與width=device-width的效果是一樣的。

  

  完美視口

  解決各種瀏覽器安全色問題的理想視口設定

  <meta name="viewport" content="width=devive-width,initial-scale=1">

  

  裝置像素比

  在談到像素的時候,講到除了縮放,螢幕是否為高密度也會影響裝置像素和css像素的關係。

  在縮放程度為100%時,他們的比例叫做裝置像素比(device pixel ratio):

  dpr=裝置像素/css像素

  可以通過JS得到:window.devecePixelRatio

  裝置像素比也和視口有關:

  dpr=螢幕橫向寬度/理想視口寬度

  

  最後打個廣告,歡迎加入本人建立的前端qq群399627992,謝謝  

  

 

移動端網頁開發所要具備的基礎知識二(視口)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.