Html-IOS下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;}
 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>
时间: 2025-01-16 04:21:52

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

IOS下 input 被软键盘方案遮盖问题解决

前言: 并没有完美解决 ! 场景: 最近在做企业微信H5的一个项目,里面有个动态列表页,开始输入框是隐藏的,点击评论才会出现并让 input 聚焦.经过测试在安卓上面应该没什么问题,但是iOS上面会出现 input 被软键盘遮盖或者半遮盖.甚至发送按钮不能点击的状况. 总的来说问题有点小严重. 查阅百度: 好的,百度一搜,哇!解决方案很多,我就放心的去抽了一根烟,想着分分钟完事.BUT 经过试验 百度 “ios 下input 被软键盘遮盖” 前两页没有一个能解决我的问题的!!! 不过收获还是有的

解决iOS下input和fixed 问题

在ios下如果页面底部有fixed 元素当有input输入框触发键盘时fixed会浮动在页面出现展示总是 解决方法有很多种,但是要根据实际需要更改 方法一.css解决(弊端:当有大面积input元素时会出现滑动不顺畅问题) //这里给内容区域设置 position:absolute,并且设置一个距离fixed的底部距离 .main{ position:absolute; bottom:rem-calc(80px); //fixed元素的高度 top:0; left:0; width:100%;

ios下input focus弹出软键盘造成fixed元素位置移位

正常状态下 input focus软键盘弹出时 问题描述: 头部结构fixed,滚动到下部内容区域,input.textarea等focus弹出软键盘时,头部位置偏移被居中(该问题ios7 beta3已修复),当软键盘关闭时,头部结构位置又恢复正常 安卓手机下,fixed表现要比ios好,不会出现此问题 然而在移动端里,基本上所有手机,页面滚动的时候,任何js都不会执行,所以寻找css的方法(且js方法比较消耗性能) 各类大网站的解决方法:一般是页面上避免悬挂元素,或者有悬挂元素时,避免产生软键

清除IOS下input及textarea的阴影

在IOS下,input表单以及textarea默认会有个内阴影,一定程度上影响视觉一致,可通过设置下面代码去掉: input,textarea{     -webkit-appearance: none; }

移除IOS下input输入框和按钮的原生样式

写WAP页面的时候  一定要加上这组样式,以避免在IOS下面按钮被系统原生样式影响 input,textarea {outline-style:none;-webkit-appearance:none;}

修改 IOS 默认input / select 样式

在做页面的时候发现,给 select 加样式的时候 而我想要的是 ios 是有自己的默认样式的. 通过查资料知道 -webkit-appearance:none: 加上这行代码之后 虽然还不是很完美,但是小箭头可以通过背景图片来搞. 但是没有加之前 在微信开发者工具中是正常的, 安卓也是正常的.

input(file)样式修改及上传文件名显示

实现思路: a标签包裹input元素 设置a标签为上传按钮的样式,相对定位 设置input为透明,绝对定位,覆盖到a上面 效果:看到的按钮是a的样式,点击时实际是点击input元素.样式和功能都具备 html代码: <a href="javascript:;" class="file gradient">选择文件 <input type="file" > </a> CSS代码: .file { position

IOS的Crash情况在Crashlytics平台上统计解决方案的一点遗憾(截止到2015年6月14日)

平台针对特定版本的monkey操作后数量统计,按时间段定时去获取,最后根据操作批次出具分析报告: 问题是crashlytics平台仅提供一个BS登录查看WEB后台,所以无法通过API或者DB去直接获取数据(ISSUES,CRASHES,USERSAFFECTED) 本人尝试了几种方式: 1. 通过HTTPS模拟请求方式获取,后面由于其token等限制太严格(用该方法已经在bugzilla 4.2上获得成功),且提示信息比较模糊化,安全做得不错,短期无法通过提示攻克,尝试较多没有成功 2. 通过内

IOS下去掉input submit圆角和

在iOS系统下input submit会有圆角,如果添加有背景色,背景色出错,在安卓系统是没有这些问题,可以在input样式加上这段样式 input{ -webkit-appearance: none; border-radius: 0; } 原文地址:https://www.cnblogs.com/YAN-HUA/p/9752980.html