9.移動web端

原文鏈接:https://github.com/helloyoucan/knowledge

1.常見問題

1.滾動穿透

有fixed遮罩層和彈出層,在屏幕上滑動能夠滑動背景下面的內(nèi)容。

解決

設(shè)置bodyposition:fixed,彈出前記錄滾動條位置,關(guān)閉后還原滾動條位置。

2.移動端輸入框被鍵盤遮擋

解決

  1. 監(jiān)聽窗口resize事件,判斷當(dāng)前獲得焦點(diǎn)的元素為輸入框,則調(diào)用元素的scrollIntoView()。
  2. 若不支持resize事件(app內(nèi)嵌的webview),則可以通過獲取輸入框焦點(diǎn)將輸入框定位到略高于輸入框的位置,失去焦點(diǎn)時(shí)在恢復(fù)到底部。(由于鍵盤高度不一致,但不會高于半個(gè)屏幕,可設(shè)位置為屏幕一半往上)
3.IOS滾動不平滑

當(dāng)滾動屏幕手指松開,滾動會停止。

解決

設(shè)置-webkit-overflow-scrolling:touch

auto:使用普通滾動, 當(dāng)手指從觸摸屏上移開,滾動會立即停止。

touch:使用具有回彈效果的滾動, 當(dāng)手指從觸摸屏上移開,內(nèi)容會繼續(xù)保持一段時(shí)間的滾動效果。

4.移動端字體
 body {
  font-family: 
    system-ui,-apple-system,BlinkMacSystemFont,segoe ui,Roboto,
    Helvetica,Arial,
    sans-serif,apple color emoji,segoe ui emoji,segoe ui symbol;
}
  1. system-ui,使用各個(gè)支持平臺上的默認(rèn)系統(tǒng)字體
  2. -apple-system, 在一些稍低版本 Mac OS X 和 iOS 上,它針對舊版上的 Neue Helvetica 和 Lucida Grande 字體,升級使用更為合適的 San Francisco Fonts
  3. BlinkMacSystemFont,針對一些 Mac OS X 上的 Chrome 瀏覽器,使用系統(tǒng)默認(rèn)字體
  4. segoe ui,在 Windows 及 Windows Phone 上選取系統(tǒng)默認(rèn)字體
  5. Roboto,面向 Android 和一些新版的的 Chrome OS
  6. Helvetica,Arial,在針對不同操作系統(tǒng)不同平臺設(shè)定采用默認(rèn)系統(tǒng)字體后,針對一些低版本瀏覽器的降級方案
  7. sans-serif,兜底方案,保證字體風(fēng)格統(tǒng)一,至少也得是無襯線字體
5.移動端適配
  1. flexible.js
  2. vh/vw(viewport)
6.移動端喚起app
<a href="abraham:/xxx.com/?pid=1">打開app</a>
// schema拼接協(xié)議的格式:[scheme]://[host]/[path]?[query]
var u = navigator.userAgent;
var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1; //android終端或者uc瀏覽器
var isiOS2 = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios終端
if (isAndroid) {
    window.location.href = "安卓提供協(xié)議url";
    /***打開app的協(xié)議,有安卓同事提供***/
    window.setTimeout(function() {
        window.location.href = '下載的地址';
    }, 2000);
} else if (isiOS2) {
    window.location.href = "IOS提供協(xié)議url";
    /***打開app的協(xié)議,有ios同事提供***/
    window.setTimeout(function() {
        window.location.href = '下載的地址';
    }, 2000);
} else {
    window.location.href = '下載的地址';
}
7.設(shè)置height= line-height就是會存在無法垂直居中文字的現(xiàn)象,偏下或者偏上

1.padding

p{
    /*高度為90px*/
    font-size: .26rem;
    padding: 0.22rem;
}

雖然上面的方法可以實(shí)現(xiàn),但是用起來的時(shí)候經(jīng)常每次都要去計(jì)算高度(padding值等于設(shè)計(jì)高度減去font-size之后再/2),這樣就比較麻煩,而且,在針對多行的時(shí)候還得計(jì)算,于是我又采用了下面的方式。利用 css3 flex布局的特性。

2.flex

 p{  
    font-size: .26rem;
    height: 0.9rem;
    display: flex;
    display: -webkit-flex;
    -webkit-align-items:center;
    align-items:center;
    box-pack-align: center;
    -webkit-box-pack-align: center;
}
8. 取消input在ios下,輸入的時(shí)候英文首字母的默認(rèn)大寫
<input autocapitalize="off" autocorrect="off" />
9.android 上去掉語音輸入按鈕
input::-webkit-input-speech-button {display: none}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • META相關(guān) 1. 添加到主屏后的標(biāo)題(IOS) 2. 啟用 WebApp 全屏模式(IOS) 當(dāng)網(wǎng)站添加到主屏幕...
    老夫的天閱讀 3,138評論 3 21
  • 這是一個(gè)最好的時(shí)代,因?yàn)槲覀冋驹诔绷髦?;但也是一個(gè)最壞的時(shí)代,因?yàn)槲覀冋驹诔鳖^上。 META相關(guān) 1. 添加到主屏...
    泡芙小姐110閱讀 761評論 3 17
  • http://www.daqianduan.com/6281.html meta基礎(chǔ)知識H5頁面窗口自動調(diào)整到設(shè)備...
    流動碼文閱讀 524評論 0 3
  • 一、使用真實(shí)手機(jī)測試未發(fā)布網(wǎng)頁的方法 方法① 在虛擬機(jī)中搭建xampp,將文件通過FTP傳到虛擬機(jī),在一個(gè)局域網(wǎng)中...
    fastwe閱讀 807評論 0 0
  • 一、流式布局 1.1 什么是流式布局 流式布局就是百分比布局,通過盒子的寬度設(shè)置成百分比來根據(jù)屏幕的寬度來進(jìn)行伸縮...
    福爾摩雞閱讀 4,481評論 2 15

友情鏈接更多精彩內(nèi)容