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

首頁 > 編程 > HTML > 正文

Html5移動端適配IphoneX等機型的方法

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

先來看下iPhone X機型的樣子

Html5,移動端,IphoneX

上圖中,Iphonex機型在頭部和底部新增了這兩個區域,所以我們需要針對這類機型做些適配,方便我們的webapp的展示
h5做成的移動端頁面,常見布局為頭部+軀干+底部三欄模式,頭部和頂部都是固定定位,軀干可里的內容可以滾動,暫定的布局如下:

 <div class="page">    <header></header>    <main></main>    <footer></footer>  </div>

但如果沒采用IphoneX機型的新的css屬性,而直接采用position: fixed;top:0等常規寫法,就會出現頭部的導航欄被手機自帶的狀態欄(顯示電量信號等等)遮擋的情況,底部的導航欄被IphoneX自帶的呼吸燈(圖中手機底部的白條)遮擋的情況,給用戶的操作和體驗帶來困擾,目前針對這類問題,根據自己做過的項目,整理了一下幾種解決方案
 

我使用的是vue框架,在index.html頁面,我們需要添加

<meta name="viewport" content="width=device-width,viewport-fit=cover">

然后,在公共的app.vue頁面,我們每個組件的展示,都是在這里被router-view替換,所以可以在這里處理一下公共的頭部頂欄,具體的布局如下:

<template><div id="app"><div class="placeholder_top" :style="{position:fixpositiona?'absolute':'fixed'}"></div><router-view  class="routerview"></router-view></div></template>

上面的布局中,我們給class為placeholder_top的div寫下如下:

.placeholder_top {  position: fixed;  top: 0;  left: 0;  width: 10rem;  background-color: #303030;  height: constant(safe-area-inset-top);  height: env(safe-area-inset-top);  z-index: 999;}

這樣的話,我們后續,單獨的組件,就不用再處理這個頂部欄的問題,那下面,我們就可以處理下前面提到的頭部問題,一般頭部,我們大多都會封裝成公共組件,所以在這里,因為受到我們在app.vue頁面插入的那個元素的影響,我們的頭部的css寫法,也需要略微改動下,頭部組件頁面布局如下:

<template><header>    <div class="title" :style="{position:fixposition?'absolute':'fixed'}">    導航內容    </div>    <div class="placeholder"></div>    </header></template>

頁面的css為:

header{background-color: #303030;    .title{    position: fixed;    top:0;    top: constant(safe-area-inset-top);    top: env(safe-area-inset-top);    left: 0;    height:88px;    z-index: 999;    }    .placeholder{    height: 88px;    width: 10rem;    }}

這樣寫,這個頭部導航欄就會位居于手機狀態欄之下了,不會影響到視窗,并且能兼容安卓和ios機型(這類兼容問題,還涉及到ios的系統問題,不過本文暫未涉及)
 

下面再來看下main區域的處理,因為上面header組件已經處理好了,所以main直接如下布局:

  main {padding-top: constant(safe-area-inset-top);padding-top: env(safe-area-inset-top);padding-bottom: calc(88px + constant(safe-area-inset-bottom));padding-bottom: calc(88px + env(safe-area-inset-bottom));

ps:這里說明一下,下面的兩行,是用在當前頁面沒有底部導航欄的情況

padding-bottom: constant(safe-area-inset-bottom);padding-bottom: env(safe-area-inset-bottom);},

main里面布局好了,直接寫內容就可以了,
 

然后在看下底部的footer布局

<template><footer>    <div class="foot" :style="{position:fixposition?'absolute':'fixed'}">    底部內容    </div></footer></template>

底部內容的css如下:

footer{    position: fixed;    bottom: 0;    left: 0;    width: 10rem;    height: calc(88px + constant(safe-area-inset-bottom));    height: calc(88px + env(safe-area-inset-bottom));    background-color: #303030;    .foot{    position: absolute;    top:0;    left: 0;    width: 10rem;    height: 88px;    }}

這樣寫,底部導航foot里的內容,就不會被手機自帶的呼吸燈所遮擋

所以可以總結一下,我們在這種webapp適配中,可能需要采用的css寫法如下:
 

    position: fixed;    top: constant(safe-area-inset-top);    top: env(safe-area-inset-top);    bottom: constant(safe-area-inset-bottom);    bottom: env(safe-area-inset-bottom);    top: calc(1rem + constant(safe-area-inset-top));    top: calc(1rem + env(safe-area-inset-top));    bottom: calc(1rem + constant(safe-area-inset-bottom));    bottom: calc(1rem + env(safe-area-inset-bottom));

ps:在上面的寫法中,有寫到:style="{position:fixposition?'absolute':'fixed'}",這個是為了解決用戶點擊輸入框,彈出軟鍵盤時,這類固定元素的定位不準的問題,感興趣的可以研究下,本文暫不討論
這里可以根據實際需求來采用不同的寫法,大體布局邏輯建議不要偏差太大,這樣寫是為了統一處理,方便維護,另外如果有真機測試,發現布局兼容導致的樣式問題,可以采用真機調試方法,用pc端瀏覽器調試webapp,審查元素,那樣基本能解決大部分樣式問題,關于真機調試,下回寫

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到HTML教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品视频1区| 欧美激情性做爰免费视频| 久久久久久久久久久人体| 国产成人精品综合久久久| 精品国产一区二区三区久久狼黑人| 欧美日韩国产精品一区| 国产精品国产三级国产aⅴ9色| 欧美在线观看网站| 国产亚洲精品激情久久| 欧美在线不卡区| 亚洲在线第一页| 国产精品香蕉av| 欧美日韩国产一中文字不卡| 97色伦亚洲国产| 欧美性在线观看| 尤物精品国产第一福利三区| 中文在线资源观看视频网站免费不卡| 成人免费网站在线观看| 欧美做爰性生交视频| 黄色成人在线免费| 91av在线不卡| 亚洲第一综合天堂另类专| 亚洲人成电影网站| 欧美xxxx18国产| 精品国产乱码久久久久久婷婷| 精品久久久精品| 91精品一区二区| 欧美视频第一页| 日韩一二三在线视频播| 美女国内精品自产拍在线播放| 日韩av不卡在线| 国产欧美精品日韩精品| 国产精品第2页| 欧美成人午夜激情| 久久久国产影院| 欧美一级电影免费在线观看| 国产视频精品xxxx| 成人免费观看网址| 亚洲va码欧洲m码| 日韩欧美极品在线观看| 在线日韩精品视频| 懂色av一区二区三区| 亚洲精品久久久久久久久久久久久| 国产69精品久久久| 国产欧美日韩中文字幕在线| 欧美精品999| 欧美激情中文字幕在线| 欧美色视频日本高清在线观看| 7m精品福利视频导航| 久久精品国产99国产精品澳门| 91麻豆国产语对白在线观看| 欧美做爰性生交视频| 伊人久久综合97精品| 日本高清不卡的在线| 亚洲成人精品久久| 国产69精品久久久久9999| 亚洲自拍偷拍视频| 91在线视频成人| 中文字幕自拍vr一区二区三区| 久久69精品久久久久久久电影好| 中文字幕国产精品| 国产精品日韩电影| 清纯唯美亚洲激情| 亚州精品天堂中文字幕| 欧美大片在线看免费观看| 欧美专区日韩视频| 91国内在线视频| 国产91九色视频| 亚洲第一精品电影| 欧美在线国产精品| 精品久久久久久中文字幕一区奶水| 一本一道久久a久久精品逆3p| 81精品国产乱码久久久久久| 亚洲精品小视频| 6080yy精品一区二区三区| 日韩欧美在线视频日韩欧美在线视频| 欧美日韩高清区| 亚洲黄色www| 国产一级揄自揄精品视频| 国产精品亚洲片夜色在线| 色婷婷久久av| 欧美大片第1页| 国产免费成人av| 中文字幕在线观看日韩| 国产精品视频1区| 精品免费在线观看| 91超碰caoporn97人人| 久久久久久亚洲精品不卡| 欧美一区二区三区免费观看| 欧美黄色三级网站| 夜夜嗨av一区二区三区免费区| 成人免费xxxxx在线观看| 国内外成人免费激情在线视频网站| 激情久久av一区av二区av三区| 欧美亚洲在线视频| 97视频在线看| 日韩在线资源网| 欧美日产国产成人免费图片| 在线精品高清中文字幕| 日韩福利伦理影院免费| 91在线精品播放| 深夜福利一区二区| 国产一区二区三区在线视频| 欧美激情亚洲精品| 国产成人在线一区二区| 性欧美在线看片a免费观看| 欧美乱人伦中文字幕在线| 国产精品自产拍在线观| 日韩一区二区三区xxxx| 8090理伦午夜在线电影| 国产一区二区视频在线观看| 4438全国亚洲精品在线观看视频| 亚洲久久久久久久久久| 欧美精品久久久久久久| 久久福利视频网| 国内精品一区二区三区| 国产97在线|日韩| 久久成人av网站| 久久九九免费视频| 综合欧美国产视频二区| 美女久久久久久久久久久| 欧美日韩国产精品一区二区不卡中文| 九九九热精品免费视频观看网站| 97av在线影院| 高清一区二区三区日本久| 国产亚洲欧美日韩一区二区| 欧美成年人网站| 欧美成人亚洲成人| 久久国产精品免费视频| 国产精品一区二区三区毛片淫片| 成人精品在线视频| 国产一区二区三区三区在线观看| 精品久久久久久| 日本中文字幕久久看| 久久成人18免费网站| 91精品久久久久久久久中文字幕| 国产综合久久久久| 欧美大码xxxx| 茄子视频成人在线| 成人精品aaaa网站| 国产精品一区二区三区在线播放| 亚洲国产精品久久久久久| 奇米四色中文综合久久| 久久偷看各类女兵18女厕嘘嘘| 欧美一级淫片aaaaaaa视频| 久久久久亚洲精品成人网小说| 日韩在线免费视频| 久久久久久久亚洲精品| 人人做人人澡人人爽欧美| 国产精品高潮呻吟久久av无限| 性欧美长视频免费观看不卡| 欧美肥臀大乳一区二区免费视频| 宅男66日本亚洲欧美视频| 最近免费中文字幕视频2019| 欧美日韩国产专区| 国产成人免费av电影| 国产精品香蕉在线观看| 成人精品视频久久久久| 大伊人狠狠躁夜夜躁av一区| 91中文精品字幕在线视频| 亚洲最新中文字幕| 欧美在线中文字幕| 欧美黄色小视频| 亚洲人成在线免费观看|