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

首頁 > 系統 > iOS > 正文

輕松理解iOS 11中webview的視口

2020-07-26 02:40:35
字體:
來源:轉載
供稿:網友

iOS 11在狀態欄區域帶來了一些新的,也許是不直觀的行為,這對使用Apache Cordova或Ionic等工具的開發人員尤為重要。尤其是這種行為變化會影響到任何基于Web的應用程序,這些應用程序在進行iOS 11構建時使用fixed定位標題欄。此文章可幫助您了解iOS 11中的Webview視口。

注意:現有應用程序將繼續工作,因為它們始終可以對其視口行為進行更改。這只會影響使用Xcode 9和iOS 11的目標編譯的應用程序。

要了解這些變化,我們需要看看它的歷史。

狀態欄與安全區

在早起版本的iOS上,狀態欄只是一個固定屏幕上方的黑色條帶,并且是不可觸摸的。它屬于系統UI的一部分,你的app運行在它的下方空間中。

隨著iOS7的推出,狀態欄變成了透明的,它的顏色取自應用程序導航欄的顏色。對于運用在webview中的app比如Cordova,通常要判斷iOS的版本然后在固定的導航欄上方預留20px的邊距,以便正確的填充導航欄。

較新版的iOS對狀態欄引入了一些小的修訂版本,包括在打電話時狀態欄中顯示一個額外的橫幅,或者應用程序在后臺使用定位功能的提示。

在native端,大部分這些兼容措施都被UINavigationBar以及自動布局指南自動解決掉了。屏幕頂部底部布局指南會自動的判斷出當前狀態欄的正確高度,確保app內容區是『安全區』,狀態欄不會覆蓋到該區域。如果你根據頂部布局指南使用UINavigationBar,則iOS也會自動將其顏色延伸到狀態欄后面。對于Web端來說,沒有這樣自動化的解決方案。

iOS 11的改變

iOS 11與早起版本的不同在于,webview內容區超出了安全區。這也就是說,如果你有一個頭部導航條使用fixed定位元素并且使用top: 0,那么它會在屏幕頂部20px的下方渲染:對齊到狀態欄的底部。

當你向下滾動時,它將向上移動到狀態欄的下面。

當你向上滾動時,它將會重新跌落到狀態欄的下方(此時會留下一個尷尬的間隙,內容會在這20px的間距內展示)

蘋果為什么會這么做呢?

如果你看到了iphone X的設計圖,你就會有一個印象:iphone X未來有一個不規則的屏幕形狀,在屏幕頂部有一段『劉?!?,用來放置話筒與相機。如果fixed定位的元素定位到了真正的屏幕頂部,那該元素中間部分會被揚聲器與相機覆蓋,從而無法訪問。

通過對齊到狀態欄的底部,可以確保標題中的任何內容都可以訪問。

除了現在的應用程序有一個尷尬的標題欄看起來很槽糕,隨著頁面上下移動,標題欄會被覆蓋到狀態欄的后面。

iOS 11 修復

幸運的是,蘋果給我們一種方式來控制這種形式,通過meta標簽。更幸運的是,這種新的視口行為也適用于老的版本,包括棄用的UIWebView!

這個視口選項是:viewport-fit,它有三個可能的值:

  • contain:視口完全包括網頁內容,這意味著fixed定位的元素被包含在了iOS 11的安全區內
  • cover:網頁內容完全覆蓋視口,這意味著fixed定位的元素將被固定到視口,即它們也可能會被覆蓋,這恢復了我們在ios 10上的行為
  • auto:默認值,和contain相同

所以要將你的標題欄恢復到屏幕的頂部,就像在iOS 10中的狀態欄一樣,只需要添加viewport-fit=cover到meta中標簽中既可。

iPhone X

但是,iPhone X的形狀不規則呢?狀態欄不在是20px高,并且相機與揚聲器都向內凸出,你的標題欄內容將會對用戶完全不可用。同樣需要注意的是,這也適用于固定在屏幕底部的頁腳條,它將會被麥克風擋住。

注意:你的app只能使用iPhone的全屏幕空間,現有的應用程序將顯示在頂部和底部的黑色空間的視圖框中。

幸運的是,蘋果公司增加了一種方法來將安全區域布局指南暴露給CSS。他們添加了一個類似于CSS變量的概念,稱為CSS常量。想像這些像系統設置的CSS變量,不能被覆蓋。它們可以通過CSS中的constant()函數來訪問,該函數已被提交給CSS工作組進行標準化。

四個布局指南常量是:

  • constant(safe-area-inset-top):來自視口頂部的安全區域插入量(以CSS像素為單位)
  • constant(safe-area-inset-bottom):從視口底部的安全區域插入量(以CSS像素為單位)。
  • constant(safe-area-inset-left):從視口左側的安全區域插入量(以CSS像素為單位)
  • constant(safe-area-inset-right):從視口右側的安全區域插入量(以CSS像素為單位)

蘋果給我們的最后的禮物是這些變量也被兼容到到UIWebView。

CSS常量示例

比如你有一個固定的頭部導航條,你在iOS 10的CSS就像這樣:

header { position: fixed; top: 0; left: 0; right: 0; bottom: 44px; padding-top: 20px; /* Status bar height */}

要是iPhone X或者iOS 11設備可以自動調整,你可以將viewport-fit=cover添加到meta標簽中,并在CSS中引入常量:

header { /* ... */ /* Status bar height on iOS 10 */ padding-top: 20px;  /* Status bar height on iOS 11+ */ padding-top: constant(safe-area-inset-top);}

對于不理解constant()語法的舊設備使用后備值。你也可以在CSS calc()表達式中使用常量。

您還需要記住為底部導航欄執行此操作。

總結

以上所述是小編給大家介紹的iOS 11中webview的視口,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
九九热精品在线| xxx成人少妇69| 5278欧美一区二区三区| 欧美性xxxxxxx| 亚洲精品网站在线播放gif| 高清亚洲成在人网站天堂| 色婷婷久久av| 欧美激情精品久久久久久黑人| 久久天天躁狠狠躁夜夜爽蜜月| 欧美成人免费在线观看| 久久夜色精品国产亚洲aⅴ| 国产精品视频999| 理论片在线不卡免费观看| 国产精品91免费在线| 日韩在线观看精品| 欧美性xxxx极品hd欧美风情| 永久免费毛片在线播放不卡| 91嫩草在线视频| 亚洲国产精品va在看黑人| 亚洲国产第一页| 疯狂欧美牲乱大交777| 欧美性感美女h网站在线观看免费| 欧美成人激情图片网| 7m第一福利500精品视频| 欧美三级欧美成人高清www| 欧美国产日韩一区二区在线观看| 高清欧美性猛交xxxx| 2018日韩中文字幕| 中文字幕亚洲一区| 亚洲自拍偷拍第一页| 国产精品久久久久9999| 午夜精品在线视频| 国产精品一区二区久久| 国产美女直播视频一区| 久久av资源网站| 亚洲精品成人久久| 国产日韩欧美夫妻视频在线观看| 国产mv免费观看入口亚洲| 国产999精品久久久| 美日韩丰满少妇在线观看| 九九视频直播综合网| 欧美国产日韩在线| 日韩女在线观看| 精品丝袜一区二区三区| 黑人精品xxx一区| 国产亚洲美女精品久久久| 国外色69视频在线观看| 日韩最新中文字幕电影免费看| 欧美亚洲另类激情另类| 亚洲国产精品电影在线观看| 久久综合伊人77777| 精品动漫一区二区三区| 国产亚洲欧洲高清| 亚洲一区二区三区成人在线视频精品| 日韩中文字幕国产精品| 欧美一区二三区| 亚洲国产精品va在看黑人| 欧美裸体视频网站| 亚洲视频国产视频| 九九视频这里只有精品| 欧美一级黄色网| 国产日韩在线亚洲字幕中文| 欧美一级高清免费播放| 成人激情av在线| 日韩久久免费电影| 欧美成人黄色小视频| 精品美女国产在线| 亚洲国产精品字幕| 亚洲午夜未满十八勿入免费观看全集| 欧美在线免费看| 亚洲欧美日韩在线一区| 亚洲综合色激情五月| 亚洲午夜av久久乱码| 国产色视频一区| 国产精品久久久久久网站| 一本一本久久a久久精品综合小说| 日韩的一区二区| 成人黄色激情网| 91老司机精品视频| 91在线精品播放| 国产日韩中文在线| 欧美性xxxx在线播放| 日韩精品日韩在线观看| 狠狠做深爱婷婷久久综合一区| 日韩成人av在线播放| 色琪琪综合男人的天堂aⅴ视频| 欧美超级乱淫片喷水| 亚洲精品日产aⅴ| 久久久久女教师免费一区| 麻豆成人在线看| 最新亚洲国产精品| 3344国产精品免费看| 亚洲高清色综合| 欧美日韩成人精品| 久久精品国产99国产精品澳门| 这里只有精品久久| 97视频在线观看播放| 亚洲国产另类 国产精品国产免费| 久久久www成人免费精品张筱雨| 亚洲精品电影在线| 亚洲第一页在线| 色无极影院亚洲| 538国产精品视频一区二区| 精品国内自产拍在线观看| 成人春色激情网| 国产香蕉一区二区三区在线视频| 亚洲欧洲日产国产网站| 成人免费大片黄在线播放| 深夜福利国产精品| 久久久视频在线| 国产精品99免视看9| 中文字幕国产精品| 久久久精品久久| 日韩免费观看高清| 狠狠色狠狠色综合日日小说| 日韩在线观看免费全集电视剧网站| 日日狠狠久久偷偷四色综合免费| 日韩在线一区二区三区免费视频| 亚洲欧美日韩国产中文| 日韩成人久久久| 欧美成人中文字幕在线| 欧美亚洲另类制服自拍| 国产精品一香蕉国产线看观看| 一区二区日韩精品| 欧美激情小视频| 欧美日韩一区二区三区| 国产精品欧美日韩一区二区| 亚洲视频第一页| 日韩在线欧美在线国产在线| 国语自产精品视频在线看一大j8| 伊人久久精品视频| 亚洲japanese制服美女| 亚洲一区二区三区在线视频| 欧美精品一区三区| 国产精品美女午夜av| 国产午夜精品视频免费不卡69堂| 精品视频偷偷看在线观看| 国产精品日韩在线| 亚洲成成品网站| 在线视频一区二区| 97在线视频精品| 亚洲一区二区福利| 日本一区二区在线免费播放| 色午夜这里只有精品| 久久久国产精品亚洲一区| 精品动漫一区二区三区| 国产最新精品视频| 成人h猎奇视频网站| 日韩精品在线第一页| 国产美女直播视频一区| 国产精品一区二区三区在线播放| 午夜精品久久久99热福利| 91国内揄拍国内精品对白| 日韩成人在线电影网| 亚洲一区二区久久| 91禁外国网站| 91在线高清免费观看| 日本中文字幕不卡免费| 国产精品一区二区三区在线播放| 91精品国产色综合久久不卡98| 亚洲区一区二区| 精品久久久久久久久久国产| 亚洲第一页自拍| 亚洲激情视频网|