如何解決input遇到fixed,absolute佈局出現的問題

diss蝸牛愛學習發表於2018-06-27

最近在做手機端input,關於吊起系統軟鍵盤遇到一些問題,小米部分手機absolute定位導致頁面文件錯亂問題,ios手機對頁面提示或者彈窗佈局問題,先總結如下:

input碰撞的系列火花:

1. input和absolute使用彈起系統輸入框,android部分手機壓蓋問題;

當input無論是absolute還是fixed定位在頁面的某一個位置,android手機吊起系統軟鍵盤,掩蓋在input元素上方,遮擋住輸入框,並不能如ios一般將整個頁面彈起;

2. android頁面元素定位top,bottom同時使用導致bottom定位元素和top定位元素擠壓一團;

鑑於部分android手機壓蓋問題,可以按照標準文件流的順序渲染頁面結構,儘量不使用定位方式來避免彈起問題;

上述問題本其原因就是系統軟鍵盤彈起,頁面容器高度不同裝置參照物不同導致;

吊起虛擬鍵盤,手機定位fixed,absolute處理方式

  • android手機,fixed定位識別範圍為:圖中紅色箭頭部分也就是裝置的 innerheight-鍵盤高度區域
  • ios手機,無論是fixed還是absolute通通都是結構中所有div的總高度;

根據上述表象建議涉及到彈窗提示等,android使用fixed定位,ios使用absolute定位,能避免滑動頁面出現提示顯示不全等問題;

如何解決input遇到fixed,absolute佈局出現的問題

說了這麼多,自己都暈了。。。 1,ios鍵盤彈起,高度仍然是div的總高度;android計算為紅色箭頭高度;

相關文章