移動端input 無法獲取焦點的問題


下午遇到一個問題,移動端的input都不能輸入了,后來發現是

-webkit-user-select :none ;

在移動端開發中,我們有時有針對性的寫一些特殊的重置,比如:

* {
      -webkit - touch - callout: none;
    //-webkit-touch-callout:none; 阻止長按圖片之后呼出菜單提示復制的行為

  //禁用Webkit內核瀏覽器的文字大小調整功能。
    -webkit-text-size-adjust: none;

  //避免點擊a標簽或者注冊了click事件的元素時產生高亮
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  //
    //禁止用戶進行復制.選擇.
    -webkit-user-select: none;
}

其中,-webkit-user-select :none ;會產生一些問題。
這是webkit內核瀏覽器下的一個bug,具體可以參考這篇文章:https://bugs.webkit.org/show_bug.cgi?id=82692


 

阻止了用戶的選擇內容行為,會導致一些“內容可編輯”標簽無法正常使用,比如input、testarea。

如果網站不需要阻止用戶的選擇內容的行為就可以使用如下樣式:

  * {
    -webkit-user-select: text;
    -user-select: text;
}

另一種方式:

*: not(input, textarea) {
    -webkit - touch - callout: none;
    -webkit - user - select: none;
}

user-select , can cause issues in elements with contenteditable="true" ,so better to add that too .

所以,最好把它也加上。

最終的代碼:

[contenteditable = "true"], input, textarea {
    -webkit-user- select: auto!important;
    -khtml-user-select: auto!important;
    -moz-user-select: auto!important;
    -ms-user-select: auto!important;
    -o-user-select: auto!important;
    user-select: auto!important;
}

本文內容大概就這么多,歡迎交流,歡迎反饋,如有錯誤,還請糾正,謝謝閱讀。

附參考鏈接:
http://stackoverflow.com/questions/12812587/phonegap-styles-webkit-user-select-none-disabling-text-field


免責聲明!

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



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