亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > HTML > 正文

html meta viewport屬性說明

2024-08-26 00:12:41
字體:
來源:轉載
供稿:網友

什么是Viewport

手機瀏覽器是把頁面放在一個虛擬的“窗口”(viewport)中,通常這個虛擬的“窗口”(viewport)比屏幕寬,這樣就不用把每個網頁擠 到很小的窗口中(這樣會破壞沒有針對手機瀏覽器優化的網頁的布局),用戶可以通過平移和縮放來看網頁的不同部分。移動版的 Safari  瀏覽器最新引進了 viewport 這個 meta tag,讓網頁開發者來控制 viewport 的大小和縮放,其他手機瀏覽器也基本支持。

Viewport 基礎

一個常用的針對移動網頁優化過的頁面的 viewport meta 標簽大致如下:

<meta name=”viewport” content=”width=device-width, initial-scale=1, maximum-scale=1″>

width:控制 viewport 的大小,可以指定的一個值,如果 600,或者特殊的值,如 device-width 為設備的寬度(單位為縮放為 100% 時的 CSS 的像素)。
height:和 width 相對應,指定高度。
initial-scale:初始縮放比例,也即是當頁面第一次 load 的時候縮放比例。
maximum-scale:允許用戶縮放到的最大比例。
minimum-scale:允許用戶縮放到的最小比例。
user-scalable:用戶是否可以手動縮放

關于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在ios和android上的一些差異表現。

網上一搜關于viewport的知識,基本上全都是如下信息:

<meta name="viewport" content="width=device-width,  initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0,  user-scalable=no" />

這段代碼的意思是,讓viewport的寬度等于物理設備上的真實分辨率,不允許用戶縮放。一都主流的web  app都是這么設置的,它的作用其實是故意舍棄viewport,不縮放頁面,這樣dpi肯定和設備上的真實分辨率是一樣的,不做任何縮放,網頁會因此顯 得更高細膩。玩ps的同學應該都知道,當你將一張1000 * 1000的圖片直接縮放至500 * 500分變成什么樣,對吧?圖片的失真一定逃不掉。

但我要做的一個應用卻恰恰相反,需要利用viewport,利用縮放。不論真實分辨率是多少,無論物理尺寸是多少,我都希望在瀏覽器里,能有統一的分辨 率,同時也不允許用戶縮放。我用來測試的設備有:iphone4、ipad2、htc的g11、不知道什么廠商的aquos  phone(android系統)、華碩的android pad、dell的winphone然后我一路遇到了如下問題:

1)如果不顯示地設置viewport,那么width的默認為980。如果頁面的所有元素寬度都小于980,此時width為980,如果頁面最 寬的位置超過980,那么width等于最大寬度??傊?,默認能將整個頁面從左到右顯示出來。如果設置了viewport,比如,只單純地設置了 user-scalable=no,例如<meta name="viewport" content="user-scalable=no"  />,那么ios下width還是按980顯示(即默認就會通過dpi縮放),但android和winphone下卻不會再縮放了,瀏覽器分辨率 和真實設置分辨率一致。

2)對于ios設備,設置width可以生效,但對于android,設置width并不會生效。ios設備,縮放的比率即dpi是通過你設置的 width和設置真實分辨率自動計算的,而android下你設置width無效,你能設置的是一個特殊的字段target-densitydpi,也就是說,有三個變量:瀏覽器width、設備真實width、dpi。  我們簡單地用個公式來表達它們之間的關系吧(并非真實關系,簡單說明用) 設備真實width * dpi =  瀏覽器width,這里的三個變量,設備真實width是個我們不能操作的已知值,另外兩個變量我們可以設置一個來影響另一個,在ios中,我們能改的是 瀏覽器width,dpi自動生成,而在android中,我們能改的是dpi,瀏覽器width自動生成。對于android,無論我們如何設置 width,也不會對瀏覽器width產生影響。

ps:這里我另外再說一個奇怪的問題:在htc的g11里(htc的手機我只有這一個,別的沒有測),如果設置了dpi而不顯示地設置width, 則user-scalable=no不生效,即是說:<meta name="viewport"  content="target-densitydpi=300,user-scalable=no"  />,無法阻止用戶縮放屏幕。我們需要顯示地設置一下width值,僅管這個值對android下的瀏覽器分辨屏并不產生任何影響(對ios還是會 產生影響的),我們仍然要設置它,而且這個值一定要大于320,如果小于等于320,也無法使user-scalable=no生效。這個問題只在htc 的g11手機上出現,在aquos  phone沒有這個問題。兼容android真是件頭痛的事  @_@,未來還不知道有多少坑呢。而在winphone上,結果就更奇怪了:我給viewport的width設一個大于480的值,user- scalable=no就失效了,而設一個小于480的值,user-scalable=no能生效。但無論我給viewport的width設多少值, 對winphone真正顯示的width卻并不產生我預期的影響,通過target-densitydpi也沒有影響。設置width,如果小于480的 話,屏幕會縮放,但縮小的比例卻和我預期完全不一樣,我不知道它是按照什么規律縮放的。不知道這是winphone的問題,還是dell實現的問題。

3)這一條和上一條應該是直接相關的:ios設備在橫豎屏時,會自動調整dpi,無論橫屏還是豎屏,都能保證瀏覽器width等于viewport 中設置的值,所以橫豎屏的時候,頁面里顯示的內容的大小是會自動縮放產生變化的。而android手機在橫豎屏的時候,不會改變dpi,在橫豎屏的時候, 網頁不會產生縮放。也正因此,ios可以保證橫豎屏頁面都不會產生滾動條,滿屏顯示,而android卻無法保證這一點,橫著滿屏則豎著無法滿屏,反之亦 然。

4)對于ios設備,如果width顯示定義了,而頁面最寬的位置超過width的話,width無效,仍按最寬的寬度來顯示(不會有滾動條)。但 此時會出現一個很奇怪的問題,當你將手機橫豎屏切換幾次之后,會發現你的頁面自動放大了,出現了滾動條,但其實放大后的寬度其實和你設的width也并沒 有關系。為了防止這種情況出現,你需要將width的寬度設置得比頁面最寬的地方更大,或者相同。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩久久精品成人| 少妇久久久久久| 97香蕉超级碰碰久久免费的优势| 国产精品99久久久久久久久| 国产在线观看精品一区二区三区| 久久国产天堂福利天堂| 亚洲国产精久久久久久| 欧美成人免费全部观看天天性色| 午夜精品久久久久久99热| 中文字幕日韩精品在线| 色樱桃影院亚洲精品影院| 国产激情久久久| 91大神福利视频在线| 国产成人精品av在线| 欧美成人中文字幕在线| 久久久久久综合网天天| 欧美乱大交做爰xxxⅹ性3| 黑人极品videos精品欧美裸| 久久精品久久久久久| 国产精品亚洲一区二区三区| 91国产美女在线观看| 在线观看国产精品日韩av| 国产激情999| 色诱女教师一区二区三区| 久久久亚洲天堂| 国产亚洲精品久久久久久| 亚洲欧美日韩视频一区| 91久久久久久久久久久| 亚洲国产成人久久| 国产福利视频一区二区| 国产精品久久一区主播| 国产精品亚洲综合天堂夜夜| 久久免费精品视频| 国产欧美日韩免费看aⅴ视频| 国产精品美乳一区二区免费| 第一福利永久视频精品| 亚洲国产精品小视频| www.午夜精品| 国产色综合天天综合网| 亚洲日本aⅴ片在线观看香蕉| 国产精品第三页| 精品美女久久久久久免费| 欧美亚洲激情视频| 欧美大奶子在线| 久久精品亚洲国产| 日韩激情第一页| 久久综合88中文色鬼| 久久综合电影一区| 日本sm极度另类视频| zzjj国产精品一区二区| www国产亚洲精品久久网站| 精品自在线视频| 亚洲一区二区福利| 久久久精品日本| 中文字幕一精品亚洲无线一区| www日韩欧美| 亚洲视频欧洲视频| 久久天天躁狠狠躁夜夜躁| www.日韩系列| 精品无人国产偷自产在线| 国产主播在线一区| 欧美日韩国产专区| 亚洲人成人99网站| 亚洲国产黄色片| 日本久久久久久久| 欧美夜福利tv在线| 日韩69视频在线观看| 国产99久久精品一区二区永久免费| 日韩精品在线第一页| 欧美成人精品一区二区| 亚洲人永久免费| 中文欧美日本在线资源| 久久久精品免费| 亚洲国内高清视频| 亚洲欧美精品一区| 91精品免费看| 亚洲国产日韩一区| 久久精品久久久久| 国产精品久久久久av免费| 亚洲视频精品在线| 国产美女久久久| 亚洲精品一区二区在线| 欧美另类老女人| 久久6免费高清热精品| 91在线国产电影| 91精品国产综合久久久久久久久| 久久久久国产精品一区| 51午夜精品视频| 亚洲成人久久一区| 国产精品电影在线观看| 欧美黑人一级爽快片淫片高清| 一区二区三区在线播放欧美| 亚洲精品免费在线视频| 国产精品久久久久福利| 欧美黄色片视频| 97国产在线视频| 一本色道久久综合狠狠躁篇怎么玩| 欧美精品一区二区三区国产精品| 黄色成人在线播放| 日韩免费观看高清| 中文字幕国内精品| 久久视频在线免费观看| 一区二区三区视频观看| 国产日韩欧美中文| 日韩av在线网页| 亚洲精品永久免费| 欧美日韩亚洲视频| 亚洲国产精品一区二区久| 黑人精品xxx一区一二区| 日韩中文第一页| 日韩欧美在线第一页| 日韩精品欧美国产精品忘忧草| 成人av.网址在线网站| 中文日韩电影网站| 色老头一区二区三区| 亚洲精品视频播放| 亚洲综合在线做性| 国产精品偷伦免费视频观看的| 尤物九九久久国产精品的特点| 成人妇女淫片aaaa视频| 国产美女搞久久| 国产精品r级在线| 国产一区二区激情| 成人精品视频在线| 欧美一级大片在线免费观看| 66m—66摸成人免费视频| 国产精品三级久久久久久电影| 精品久久香蕉国产线看观看亚洲| 青青草成人在线| 日韩在线免费视频观看| 久久精品视频中文字幕| 精品国产老师黑色丝袜高跟鞋| 成人免费在线视频网站| 日本一本a高清免费不卡| 亚洲欧美制服中文字幕| 亚洲精品日韩激情在线电影| 尤物九九久久国产精品的分类| 日韩av网站在线| 日日狠狠久久偷偷四色综合免费| 亚洲www视频| 亚洲国产精品yw在线观看| 欧美日韩高清在线观看| 国产精品欧美久久久| 日韩成人激情在线| 亚洲伊人久久综合| 久久久久久久一区二区三区| 日韩成人中文字幕在线观看| 成人免费大片黄在线播放| 亚洲欧美变态国产另类| 国产精品678| 亚洲区在线播放| 久久久之久亚州精品露出| 日韩精品在线观| 欧美性xxxxxxx| 日韩专区在线播放| 国产一区二区色| 91综合免费在线| 2018中文字幕一区二区三区| 欧美大片在线看| 亚洲精品中文字| 亚洲久久久久久久久久久| 欧美精品第一页在线播放| 日韩中文在线不卡| 亚洲女人天堂色在线7777|