Viewport 不權威指南

2021-09-24 17:29:50 字數 1513 閱讀 6523

viewport:視口,視覺視窗,顯示區域。

在顯示面積上手機螢幕相對桌面顯示器要小很多,在幾年前(現在也如此)大部分**都是為桌面顯示器瀏覽而設計,很少考慮到適應手機螢幕,所以如果用手機瀏覽大多**時會出現問題,比如常見固定寬度的網頁會出現橫向豎向滑動條,當然這不算什麼大問題;但如果是瀏覽流動布局的網頁那情況會非常糟糕,設想乙個寬度為 30% 的側邊欄對於 320px 手機螢幕而言也就 96px,只能容納八個 12px 的漢字,可閱讀性非常差。

以一代 iphone 下的 safari 來說就是:

在 iphone 的 320px 物理螢幕上——視覺視窗(visual viewport),建立出了乙個 980px 的虛擬視窗——布局視窗(layout viewport),在視覺視窗(visual viewport)中我們可以拖動橫向豎向滑動條或者放大縮小網頁,來達到最佳的瀏覽效果(類似桌面瀏覽器);而布局視窗(layout viewport)用來配合 css 渲染布局,例如當我們設定乙個容器的寬度為 100% 時,這個容器的實際值為 980px 而不是 320px。如此一來大部分網頁就能以縮放的形式正常的顯示在手機螢幕上了。

有了 layout viewport 似乎解決手機瀏覽網頁的難題,但如果遇到專門為手機優化的網頁就又有新的問題:

是的,因為 iphone 的 layout viewport 預設為 980px,導致專為其優化的 320px 寬的頁面只能以縮放的方式顯示,這時就需要對 viewport 進行設定:

這個是最常見的一條 viewport meta **,將 viewport 定義為:寬度為裝置寬度,初始縮放比例為 1 倍,禁止使用者縮放。設定好後我們的頁面就顯示完美了:

viewport 全部屬性&值如下:

width: viewport寬度

height: viewport高度

initial-scale: 初始縮放比例

maximum-scale: 最大縮放比例

minimum-scale: 最小縮放比例

user-scalable: 是否允許使用者縮放

例:

width=960 或 device-width

height=1000 或 device-height

initial-scale=0.5

maximum-scale=2

minimum-scale=1

user-scalable=1 或 0 (yes 或 no)

safari iphone: 980px

opera: 850px

android webkit: 800px

ie: 974px

① 除此之外不同移動瀏覽器廠商也有不同的解決方案,例如 ucweb 就是使用中介軟體技術。

② 不同的瀏覽器廠商對於 layout viewport 的大小定義不同,詳見」layout viewport的預設值」。

Hadoop 權威指南

rpm包和deb包是兩種linux系統下最常見的安裝包格式,在安裝一些軟體或服務的時候免不了要和它們打交道。rpm包主要應用在redhat系列包括 fedora等發行版的linux系統上,deb包主要應用於debian系列包括現在比較流行的ubuntu等發行版上。yum可以用於運作rpm包,例如在f...

HTTP權威指南

web 伺服器會為所有 http 物件資料附加乙個 mime 型別,content type image jpeg,content length 12984 伺服器資源名被稱為統一資源識別符號 uniform resource identifier,uri uri 就像網際網路上的郵政位址一樣,在世...

KEEPLIAVED權威指南

vrrp通過224.0.0.18來實現 在vrrp中,不管誰是主,對外都是相同的mac和ip 作為主,必須不斷傳送vrrp包,告訴其他備,他是存活的 keepalived core,vrrp,check,libipfwc,libipvs keepalived對lvs進行封裝 keepalived配置...