最近在學習移動網頁開發,首先看到head裡面設置了下麵這個屬性:通過搜集資料,大體瞭解了viewport屬性的含義。一、什麼是Viewport手機瀏覽器是把頁面放在一個虛擬的“視窗”(viewport)中,通常這個虛擬的“視窗”(viewport)比屏幕寬,這樣就不用把每個網頁擠到很小的視窗中,也不...
最近在學習移動網頁開發,首先看到head裡面設置了下麵這個屬性:
一、什麼是Viewport
手機瀏覽器是把頁面放在一個虛擬的“視窗”(viewport)中,通常這個虛擬的“視窗”(viewport)比屏幕寬,這樣就不用把每個網頁擠到很小的視窗中,也不會破壞沒有針對手機瀏覽器優化的網頁的佈局,用戶可以通過平移和縮放來看網頁的不同部分。移動版的 Safari 瀏覽器最新引進了viewport 這個 meta tag,讓網頁開發者來控制 viewport 的大小和縮放,其他手機瀏覽器也基本支持。二、Viewport基礎
一個常用的針對移動網頁優化過的頁面的 viewport meta 標簽大致如下:
1、width : 控制viewport的大小,可以指定一個值,如600, 或者特殊的值,如device-width為設備的寬度(單位是縮放為100%的CSS的像素)
2、height : 和width相對應,指定高度
3、initial-scale : 初始縮放比例,頁面第一次載入時的縮放比例
4、maximum-scale : 允許用戶縮放到的最大比例,範圍從0到10.0
5、minimum-scale : 允許用戶縮放到的最小比例,範圍從0到10.0
6、user-scalable : 用戶是否可以手動縮放,值可以是:①yes、 true允許用戶縮放;②no、false不允許用戶縮放
三、關於viewport的一些問題
viewport並非只是ios上的獨有屬性,在android、winphone上同樣也有viewport。它們要解決的問題是相同的,即無視設備的真實解析度,直接通過dpi,在物理尺寸和瀏覽器之間重設解析度,這個解析度和設備的解析度無關。比如,你拿個3.5寸-320 * 480的iphone3 gs、3.5寸-640 * 960的iphone4或者9.7寸-1024*768的ipad2,雖然設備的解析度不同,物理尺寸也不同,但你可以通過設置viewport讓它們在瀏覽器里有相同的解析度。比如說,你的網站是800px寬,你可以通過設置viewport的width=800,來讓你的網站在這三個不同的設備上都剛好滿屏顯示你的網站。
網上一搜關於viewport的知識,基本上全都是如下信息:
這段代碼的意思是,讓viewport的寬度等於物理設備上的真實解析度,不允許用戶縮放。一都主流的web app都是這麼設置的,它的作用其實是故意捨棄viewport,不縮放頁面,這樣dpi肯定和設備上的真實解析度是一樣的,不做任何縮放,網頁會因此顯得更高細膩。