最近用 uniapp(一種第三方 app 開發框架) 開發 app,其中一個頁面有十幾個 input 輸入框,在點擊 input 輸入時,軟鍵盤彈起,致使頁面往上頂,底部的按鈕也所有彈到頁面上面去了,佈局全被打亂。css
原來的樣子: app
一種可行的解決方案:給頁面設置一個最小高度,即一個能讓全部元素按原來佈局排列的高度。框架
舉例:iphone
我開發的 APP 運行在 ipad上,橫屏顯示時,高度爲 768px ,我能夠把 768px 當作頁面的最小高度。佈局
.app {
min-height: 768px;
/* 原來定義的高度 100% */
height: 100vh;
}
複製代碼
ipad 的問題解決了,要是 APP 運行在其餘手機端上呢?此時,CSS3 @media
屬性就排上用場了。 假設要適配 iphone5 和 iphone6spa
/* 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;
}
}
複製代碼
這樣設置便可適配 iphone5 和 iphone6code