移動前端分享:對於行動裝置頁面尺寸的理解(1)

來源:互聯網
上載者:User

移動前端分享:對於行動裝置頁面尺寸的理解(1)

為行動裝置製作前端頁面,往往會遇到很多令人迷惑的情況,本文中,我整理了一些相關的概念和方法,與大家分享一下。

裝置像素和CSS像素

css像素是固定不變的,瀏覽器上縮放的話,css像素會被展開或者縮小,裝置像素不變

100%zoom : css像素 和裝置像素 一致

zoom被縮放 : css像素在裝置像素裡 被縮放

螢幕尺寸和視窗尺寸

螢幕尺寸和視窗尺寸較好理解

但是需要注意的是:當縮放視窗的時候,視窗尺寸更改了,這一點對於後面理解移動端尺寸有一定協助

解釋:當放大頁面的時候,視窗尺寸變小了,為什麼呢?因為視窗尺寸(window.innerWidth)的定義是視窗裡能展現的像素寬高,頁面放大了,頁面裡展現的css像素變少了,所以視窗尺寸變小了,相反縮小頁面的時候,視窗尺寸變大了。

pc上的viewport

viewport並非是移動端的專利,viewport是瀏覽器內部的一個資料,它約束html的寬度。viewport基本等同於視窗尺寸,所以當你縮放視窗的時候viewport會改變,相應的html寬度也會改變。

這個例子中,由於放大頁面,viewport變小,而頁面中的頭部藍條css設定為100%,跟隨viewport變化,所以右側logo暴露了出來,藍條沒有覆蓋100%的文檔寬度,而只取viewport的寬度。

移動終端的viewport

移動終端的viewport更加麻煩一些,有兩種viewport,分別是展示viewport(visual viewport)和布局viewport(layout viewport)。

上面這張圖片你可以這麼理解:

手機是一個放大鏡,它遊走在頁面上,手機上展示的寬高為visual-viewport,而整個頁面的寬高是layout-viewport。

好奇的朋友一定會問,為什麼要這樣呢,何必這麼麻煩?這是因為手機的尺寸太小了,“行動瀏覽器廠商想給它們的客戶儘可能的提供最好的體驗,這現在指的就是「儘可能的跟案頭一樣」。因此耍一些花招是必要的。”

那麼,假如我的頁面沒有經過任何最佳化,手機預設的layout-viewport是多大呢,“layout viewport有多寬?每個瀏覽器都不一樣。Safari iPhone為980px,Opera為850px,Android WebKit為800px,最後IE為974px。”

這就是為什麼普通一個頁面在iphone上看會變得很大的原因,iphone預設把你的頁面的viewport設定為980px,也就是說html的100%寬度預設為980px;


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.