Html-IOS下input的樣式添加不上的解決方案

來源:互聯網
上載者:User

標籤:event   input   否則   狀態   綁定   safari   listen   orm   tar   

問題描述:

 1 <!DOCTYPE html> 2  3 <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> 4 <head> 5     <meta charset="utf-8" /> 6     <title></title> 7     <style> 8         input { width: 100px; height: 25px; background-color: #ff6a00; outline:none;} 9         input:active{ background-color:#00ff21; transform: translate(2px,2px); -webkit-transform: translate(2px,2px); /*Google*/ -moz-transform: translate(2px,2px); /*Safari*/ -webkit-transform: translate(2px,2px); /*op*/}10     </style>11 </head>12 <body>13     <input type="button" value="刷 新" />14 </body>15 </html>

問題代碼如上,input的css樣式添加失效

(touch的樣式active樣式添加同樣失效)

 

原因:

1、IOS預設給input添加的樣式,我們的樣式被覆蓋了

2、IOS下input自己手動需啟用active狀態,否則active是不會起作用的

 

解決方案:

1、css給input添加: -webkit-appearance: none;【這個是為了去除IOS預設的input樣式】

2、手動啟用active狀態,給body/html或元素上綁定touchstart事件:

js原生寫法

 1 document.body.addEventListener("touchstart", function () {  //空函數即可}); 

jq寫法

 1 $(‘body‘).on("touchstart",function(){   //空函數即可}); 

 

當然了,有的時候,這還不足以解決問題,有時你還需要這樣寫

 1 $(function () { $(‘input‘).on("touchstart", function () {   //空函數即可});  }); 

等到頁面載入完成後,在執行啟用綁定事件,而且往往有的時候你必須在input上添加才會有效,具體是什麼原因我還沒有研究清楚。

 

正確寫法:

 1 <!DOCTYPE html> 2  3 <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> 4 <head> 5     <meta charset="utf-8" /> 6     <title></title> 7     <style> 8         input { width: 100px; height: 25px; background-color: #ff6a00; outline:none; -webkit-appearance: none; } 9         input:active{ background-color:#00ff21; transform: translate(2px,2px); -webkit-transform: translate(2px,2px); /*Google*/ -moz-transform: translate(2px,2px); /*Safari*/ -webkit-transform: translate(2px,2px); /*op*/}10     </style>11 </head>12 <body>13     <input type="button" value="刷 新" />14     <script>15         document.body.addEventListener("touchstart", function () {16 17         });18 19         //或20         $(‘input‘).on("touchstart", function () { });21 22 23 24         //或25         $(function () {26             $(‘input‘).on("touchstart", function () { });27         });28 29 30     </script>31 </body>32 </html>

 

Html-IOS下input的樣式添加不上的解決方案

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.