成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

viewport詳解

xfee / 3114人閱讀

摘要:也發(fā)現(xiàn)了這個問題,并且適時的出現(xiàn),它提出了一個方案用來解決這個問題。很明顯,的尺寸不會是一個固定的值,甚至每款設(shè)備都可能不同。而完美視口也是通過的某種設(shè)置來達(dá)到。特性通常情況下,有以下種設(shè)置。用于指定用戶能夠放大的比例。

前言

這次想聊聊移動開發(fā)相關(guān)的事。是的,你沒有看錯,一句話就可以開始你的移動前端開發(fā)。

你心里一定在想,什么話這么酷,能夠瞬間帶入到移動前端開發(fā)的世界。

但其實(shí)它一點(diǎn)也不新奇,不復(fù)雜。

viewport簡介

沒錯,就是viewport特性,一個移動專屬的Meta值,用于定義視口的各種行為。

該特性最先由Apple引入,用于解決移動端的頁面展示問題,后續(xù)被越來越多的廠商跟進(jìn)。

舉個簡單的例子來講為什么會需要它:

我們知道用戶大規(guī)模使用手機(jī)等移動設(shè)備來進(jìn)行網(wǎng)頁瀏覽器,其實(shí)得益于智能手持設(shè)備的興起,也就是近幾年的事。(還記得不久前的幾年,滿大街都還是諾基亞的天下么?)

這時有一個很現(xiàn)實(shí)的問題擺在了廠商面前,用戶并不能很好地通過手機(jī)等設(shè)備訪問網(wǎng)頁,因?yàn)槠聊惶 ?/p> layout viewport

Apple也發(fā)現(xiàn)了這個問題,并且適時的出現(xiàn),它提出了一個方案用來解決這個問題。在iOS Safari中定義了一個viewport meta標(biāo)簽,用來創(chuàng)建一個虛擬的布局視口(layout viewport),而這個視口的分辨率接近于PC顯示器,Apple將其定義為980px(其他廠商各有不同①)。

這就很好的解決了早期的頁面在手機(jī)上顯示的問題,由于兩者之間的寬度趨近,CSS只需要像在PC上那樣渲染頁面就行,原有的頁面結(jié)構(gòu)不會被破壞。

①的描述大致如下,數(shù)值不一定持續(xù)準(zhǔn)確,廠商可能更改,但這個絕對值其實(shí)并非特別重要:
iOS, Android基本都是: 980px
BlackBerry: 1024px

visual viewport

有了layout viewport,我們還需要一個視口用來承載它,這個視口可以簡單的認(rèn)為是手持設(shè)備物理屏幕的可視區(qū)域,我們稱之為(視覺視口)visual viewport。這是一個比較直觀的概念,因?yàn)槟隳芸吹靡娔愕氖謾C(jī)屏幕。

對于visual viewport,開發(fā)者一般只需要知道它的存在和概念就行,因?yàn)闊o法對它進(jìn)行任何設(shè)置或者修改。很明顯,visual viewport的尺寸不會是一個固定的值,甚至每款設(shè)備都可能不同。大致列幾種常見設(shè)備的visual viewport尺寸:

iPhone4~iPhone5S: 320*480px

iPhone6~iPhone6S: 375*627px

iPhone6 Plus~iPhone6S Plus: 414*736px

以iPhone4S為例,會在其320px②的visual viewport上,創(chuàng)建一個寬980px的layout viewport,于是用戶可以在visual viewport中拖動或者縮放網(wǎng)頁,來獲得良好的瀏覽效果;布局視口用來配合CSS渲染布局,當(dāng)我們定義一個容器的寬度為100%時,這個容器的實(shí)際寬度是980px而不是320px,通過這種方式大部分網(wǎng)頁就能以縮放的形式正常顯示在手機(jī)屏幕上了。

②的描述大致如下:
早期移動前端開發(fā)工程師常能見到寬640px的設(shè)計稿,原因就是UI工程師以物理屏幕寬度為320px的iPhone4-iPhone5S作為參照設(shè)計;
當(dāng)然,現(xiàn)在你還可能會見到750px和1242px尺寸的設(shè)計稿,原因當(dāng)然是iPhone6的出現(xiàn)
當(dāng)然,為了更好的適配移動端或者只為移動端設(shè)計的應(yīng)用,單有布局視口和視覺視口還是不夠的。

ideal viewport

我們還需要一個視口,它類似于布局視口,但寬度和視覺視口相同,這就是完美視口(ideal viewport)。

有了完美視口,用戶不用縮放和拖動網(wǎng)頁就能夠很好的進(jìn)行網(wǎng)頁瀏覽。而完美視口也是通過viewport meta的某種設(shè)置來達(dá)到。

說了這么一大堆的東西,貌似都和viewport有關(guān)聯(lián),那么viewport到底怎么搞,請繼續(xù)往下。

viewport特性

通常情況下,viewport有以下6種設(shè)置。當(dāng)然廠商可能會增加一些特定的設(shè)置,比如iOS Safari7.1增加了一種在網(wǎng)頁加載時隱藏地址欄與導(dǎo)航欄的設(shè)置:minimal-ui,不過隨后又將之移除了。

Name Value Description
width 正整數(shù)或device-width 定義視口的寬度,單位為像素
height正整數(shù)或device-height 定義視口的高度,單位為像素
initial-scale [0.0-10.0] 定義初始縮放值
minimum-scale [0.0-10.0] 定義縮小最小比例,它必須小于或等于maximum-scale設(shè)置
maximum-scale [0.0-10.0] 定義放大最大比例,它必須大于或等于minimum-scale設(shè)置
user-scalable yes/no 定義是否允許用戶手動縮放頁面,默認(rèn)值yes

width

width被用來定義layout viewport的寬度,如果不指定該屬性(或者移除viewport meta標(biāo)簽),則layout viewport寬度為廠商默認(rèn)值。如:iPhone為980px;

舉個例子:

此時的layout viewport將成為ideal viewport,因?yàn)閘ayout viewport寬度與設(shè)備視覺視口寬度一致了。

除了width之外,還有一個屬性定義也能實(shí)現(xiàn)ideal viewport,那就是initial-scale。

height

與width類似,但實(shí)際上卻不常用,因?yàn)闆]有太多的use case。

initial-scale

如果想頁面默認(rèn)以某個比例放大或者縮小然后呈現(xiàn)給用戶,那么可以通過定義initial-scale來完成。

initial-scale用于指定頁面的初始縮放比例,假定你這樣定義:

那么用戶將會看到2倍大小的頁面內(nèi)容。

在說width的時候,我們說到initial-scale也能實(shí)現(xiàn)ideal viewport,是的,你只需要這樣做,也可以得到完美視口:

maximum-scale

在移動端,你可能會考慮用戶瀏覽不便,然后給予用戶放大頁面的權(quán)利,但同時又希望是在一定范圍內(nèi)的放大,這時就可以使用maximum-scale來進(jìn)行約束。

maximum-scale用于指定用戶能夠放大的比例。

假設(shè)頁面的默認(rèn)縮放值initial-scale是1,那么用戶最終能夠?qū)㈨撁娣糯蟮竭@個初始頁面大小的5倍。

minimum-scale

類似maximum-scale的描述,不過minimum-scale是用來指定頁面縮小比例的。

通常情況下,為了有更好地體驗(yàn),不會定義該屬性的值比1更小,因?yàn)槟菢禹撁鎸⒆兊秒y以閱讀。

user-scalable

如果你不想頁面被放大或者縮小,通過定義user-scalable來約束用戶是否可以通過手勢對頁面進(jìn)行縮放即可。

該屬性的默認(rèn)值為yes,即可被縮放(如果使用默認(rèn)值,該屬性可以不定義);當(dāng)然,如果你的應(yīng)用不打算讓用戶擁有縮放權(quán)限,可以將該值設(shè)置為no。

使用方法如下:

結(jié)語

正如開篇所說,這既不高深也不新奇,它而僅僅是一點(diǎn)觀念轉(zhuǎn)變。

當(dāng)你掌握了viewport,那么意味著你已經(jīng)大致了解了移動平臺與PC平臺的不同,你可以更專注而細(xì)致的去解決某些平臺差異問題。

轉(zhuǎn)載:http://web.jobbole.com

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/49836.html

相關(guān)文章

  • HTML meta 詳解

    摘要:常用于定義頁面的說明,關(guān)鍵字,最后修改日期,和其它的元數(shù)據(jù)。這些元數(shù)據(jù)將服務(wù)于瀏覽器如何布局或重載頁面,搜索引擎和其它網(wǎng)絡(luò)服務(wù)。安全措施緩存所有響應(yīng),但并非必須。另一種是通過網(wǎng)頁的標(biāo)簽。該元數(shù)據(jù)名稱與屬性包含的值相關(guān)聯(lián)。 文章同步于Github Pines-Cheng/blog 簡介 meta標(biāo)簽是HTML語言HEAD區(qū)的一個輔助性標(biāo)簽。 meta常用于定義頁面的說明,關(guān)鍵字,最后修改...

    bingo 評論0 收藏0
  • 前端-CSS3&H5

    摘要:高度模型淺識為的簡寫,簡稱為塊級格式化上下文,為瀏覽器渲染某一區(qū)域的機(jī)制,中只有和中還增加了和。并非所有的布局都會在開發(fā)中使用,但是其中也會涉及一些知識點(diǎn)。然而在不同的純制作各種圖形純制作各種圖形多圖預(yù)警 一勞永逸的搞定 flex 布局 尋根溯源話布局 一切都始于這樣一個問題:怎樣通過 CSS 簡單而優(yōu)雅的實(shí)現(xiàn)水平、垂直同時居中。記得剛開始學(xué)習(xí) CSS 的時候,看到 float 屬性不...

    xiaolinbang 評論0 收藏0
  • 善用meta

    摘要:列表好的使用,能更好地提高頁面的可用性及被檢索的幾率。假設(shè)頁面使用了標(biāo)準(zhǔn)的,那么此定義效果等同假設(shè)頁面并沒有使用標(biāo)準(zhǔn)的,那么將使用來渲染。需要注意的是并不是所有搜索引擎都支持,比較保守的做法是配合使用。 前言 在移動前端第一彈:viewport詳解中,我們講了viewport,那是一個關(guān)于meta的故事。這次我們會就將meta這個故事講得更廣闊、更有意思一些。 寫過HTML的童鞋,應(yīng)該...

    fengxiuping 評論0 收藏0

發(fā)表評論

0條評論

xfee

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<