input輸入內容時放大問題及處理


最近做的微信網站有一個關於input輸入框頁面放大的問題。比如登錄頁面剛打開時正常,但用戶輸入信息登錄時,頁面就會放大。解決這個問題,首先需要在頭部加一個

<meta name="viewport" content="width=720,inital-scale=1.0,user-scalable=no;">

或者:

<meta name="viewport" content="user-scalable=no;">

目的就是不要用戶自行放大或縮小頁面。

再加一個如下的css樣式:

input,input:focus,input:active{user-select: text;}

還有種情況就是給input加了字體大小的樣式單位是vmin的,比如:

input{font-size:3vmin;}

安卓手機也會出現有輸入時input內是字體會有放大或縮小的情況。這種情況的解決辦法就是把字體單位改成px即可,如:

input{font-size:36px;}/*順便分享一下個人實驗的結果,字體單位:1vmin大約等同於10px*/

如此便可解決問題。

問題就解決了,有類似問題的同學可以試試。

 

js的解決辦法:

首先在頭部加一個js來獲取手機的不同型號對應的並屏幕大小,然后給其加不同的meta屬性。如下:

<script>
    if(/Android (\d+\.\d+)/.test(navigator.userAgent)){
       var version = parseFloat(RegExp.$1);
    if(version>2.3){
       var phoneScale = parseInt(window.screen.width)/720;
       document.write('<meta name="viewport" content="width=720, minimum-scale = '+ phoneScale +', maximum-scale = '+ phoneScale +', user-scalable=no, target-densitydpi=device-dpi">');
       }else{
            document.write('<meta name="viewport" content="width=720, target-densitydpi=device-dpi">');
       }
       }else{
            document.write('<meta name="viewport" content="width=720, user-scalable=no, target-densitydpi=device-dpi">');
       }
</script>

 

其次就是需要改你的css。即將你的css中所有定了頁面最大寬度的具體值全部改成100%.
這樣就能解決問題了,經測試這個方法對所有常用機型都適用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM