Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 448|回复: 0

Html-IOS下input的样式添加不上的解决方案

[复制链接]
  • TA的每日心情
    奋斗
    2024-11-24 15:47
  • 签到天数: 804 天

    [LV.10]以坛为家III

    2053

    主题

    2111

    帖子

    72万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    726782
    发表于 2021-5-14 11:45:15 | 显示全部楼层 |阅读模式

    问题描述:

     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>

     

    作者:leona

    原文链接:http://www.cnblogs.com/leona-d/p/5950280.html 

    版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接
    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2025-1-23 15:11 , Processed in 0.069571 second(s), 30 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表