日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

手机软键盘弹起导致页面变形的一种解决方案

發(fā)布時(shí)間:2023/12/15 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 手机软键盘弹起导致页面变形的一种解决方案 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

最近用 uniapp(一種第三方 app 開發(fā)框架) 開發(fā) app,其中一個(gè)頁面有十幾個(gè) input 輸入框,在點(diǎn)擊 input 輸入時(shí),軟鍵盤彈起,導(dǎo)致頁面往上頂,底部的按鈕也全部彈到頁面上面去了,布局全被打亂。

原來的樣子:

軟鍵盤彈出來后:

在開發(fā)APP時(shí),通常情況下頁面的寬度和高度都會(huì)設(shè)為 100%,即頁面高度等于屏幕高度,頁面寬度等于屏幕寬度。
當(dāng) input 獲取焦點(diǎn)時(shí),軟鍵盤彈出,頁面高度被擠壓,此時(shí)頁面高度 = 屏幕高度 - 軟鍵盤高度。所以,頁面高度縮小,元素都擠壓在一起,布局被打亂。

一種可行的解決方案:給頁面設(shè)置一個(gè)最小高度,即一個(gè)能讓所有元素按原來布局排列的高度。

舉例:

我開發(fā)的 APP 運(yùn)行在 ipad上,橫屏顯示時(shí),高度為 768px ,我可以把 768px 當(dāng)做頁面的最小高度。

.app {min-height: 768px;/* 原來定義的高度 100% */height: 100vh; }


軟鍵盤還是會(huì)彈起,因?yàn)轫撁孀钚「叨缺辉O(shè)為了 768px,所以此時(shí)總高度為 768px + 軟鍵盤高度,超出了屏幕高度(ipad橫屏屏幕高度為768px)。如上圖所示,此時(shí)原來頁面的上半部分“消失”,就是被頂上去了,只顯示原來頁面的下半部分。但至少我們要的頁面布局不變形已經(jīng)實(shí)現(xiàn)了。等輸入完,軟鍵盤收起時(shí),頁面恢復(fù)原狀。

ipad 的問題解決了,要是 APP 運(yùn)行在其他手機(jī)端上呢?此時(shí),CSS3 @media 屬性就排上用場了。
假設(shè)要適配 iphone5 和 iphone6

/* iphone5 width:320; height:568*/ @media (min-width: 320px) {.app {min-height: 568px;height: 100vh;} } /* iphone6 width:375; height:667*/ @media (min-width: 375px) {.app {min-height: 667px;height: 100vh;} }

這樣設(shè)置即可適配 iphone5 和 iphone6

總結(jié)

以上是生活随笔為你收集整理的手机软键盘弹起导致页面变形的一种解决方案的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。