android img标签属性_IOS和android兼容性问题分析

作者: xteamer成员: shuaiyin

【摘要】今天给大家分享一下自己在实际开发中,所遇到的移动端IOS和android兼容性问题。其实本人在最初开发的时候,很容易忽略的就是IOS的问题,例如:时间格式的显示问题。相信很多初级开发者都会有这样的经历,在IOS手机上,会看到显示NaN的页面。这就是IOS不兼容时间格式问题所导致的。实际开发过程中还有很多的兼容性问题,会一一列举出来。以后有新的关于兼容问题会持续更新。

一.日期的兼容性

1.安卓和ios转换时间戳的形式

关于时间的转换,在安卓系统和ios系统是存在兼容性的,也就是说,在安卓手机可以正常显示的时间,在ios系统上面就会出现NaN。

在安卓系统下,我们可以直接转换:

Date.parse(new Date('2018-03-30 12:00:00'))

但是在ios系统下,

Date.parse(new Date('2018-03-30 12:00:00'))

是无法转换成功的,就会出现NaN这样的兼容性问题。

那么解决方案就需要将时间转换成如下的格式,ios系统才可以成功转换,Date.parse(new Date('2018/03/30 12:00:00'))。

如何转换成这种的时间格式:方案如下:

//将xxxx-xx-xx的时间格式,转换为 xxxx/xx/xx的格式 var date = '2018-07-25 19:25'; date = date. ;

封装成函数就是:

function formatTimeStamp (time) { return Date.parse(new Date('2018/03/30 12:00:00')) || Date.parse(new Date('2018-03-30 12:00:00')) }

二.input输入框聚焦

input输入框在聚焦的时候,ios有时候会出现outline或者阴影,安卓则是显示正常的。那么解决方案:

input:focus{outline:none} input:{-webkit-appearance: none;}

三.ios系统会将数字当成电话号码,导致变色

解决方法:

<meta name="format-detection" content="telephone=no"> <meta http-equiv="x-rim-auto-match" content="none">

对于我们的系统框架来说,已经解决这样一个问题。

四.input输入框的placeholder

input输入框的placeholder,也就是输入框的提示性文字。会出现不在输入框的中间位置,导致位置偏上。

那么移动端的解决方案就是:

line-height:normal ---移动端解决方法。

五.input输入框type类型为number的时候

type类型为number也就是说,输入框输入的是数字,但是会出现上下的箭头。可以将箭头给隐藏掉。

input::-webkit-outer-spin-button, input::-webkit-inner-spin-button { -webkit-appearance: none !important; margin: 0; }

六.安卓手机可以点击图片

部分的安卓手机可以点击页面的图片,解决方案就是通过css3给img标签设置不可点击属性。

img{ pointer-events: none; }

这样的话img标签的点击事件就会失效。由此可见在很多的js判断,无论移动端还是小程序,都可以通过这个属性,来设置标签的不可点击属性。

七.h5底部输入框被键盘遮挡

在h5的静态页面会出现一个非常难受的问题,就是当页面出现多个input输入框的时候,导致最下面一个输入框,点击的时候弹出的键盘会遮挡输入框。用户根本不知道自己输入的是什么,对用户的体验非常不友好。解决方案:

1.就是选中当前的DOM元素,让他出现在可视区域的顶部或者底部。代码如下:

document.querySelector('#inputId').scrollIntoView();

八.input标签的常用操作

1.清除input标签的默认样式

input { -moz-appearance: none;outline: 0;text-decoration: none; outline: none; border: 0; }

2.input标签属性placeholder样式修改

input::-webkit-input-placeholder { font-size: px2rem(22);color: rgba(136, 136, 136, 1);font-family: Microsoft Yahei; width: px2rem(50); height: px2rem(60); line-height: px2rem(40); }

3.input 点击输入内容后的样式 focus

input:focus { outline: none; -moz-box-shadow: 0 2px 3px 0 rgba(0,0,0,.1) inset, 0 2px 7px 0 rgba(0,0,0,.2); -webkit-box-shadow: 0 2px 3px 0 rgba(0,0,0,.1) inset, 0 2px 7px 0 rgba(0,0,0,.2); box-shadow: 0 2px 3px 0 rgba(0,0,0,.1) inset, 0 2px 7px 0 rgba(0,0,0,.2); }

4.input标签可读不可编辑

方法1: οnfοcus=this.blur() 当鼠标放不上就离开焦点

<input type="text" name="input1" value="中国" οnfοcus=this.blur()>

方法2:readonly

<input type="text" name="www.xxx" readonly="readonly" />

<input type="text" name="input1" value="中国" readonly>

<input type="text" name="input1" value="中国" readonly="true">

注意: readonly表示此域的值不可修改,仅可与 type="text" 配合使用,可复制,可选择,可以接收焦点,后台会接收到传值

方法3: disabled

<input type="text" name="input1" value="中国" disabled="true">

readonly="readonly" 推荐

注意: readonly表示此域的值不可修改,仅可与 type="text" 配合使用,可复制,可选择,可以接收焦点,后台会接收到传值

disabled="true" 此果文字会变成灰色,不可编辑,不可点击。

readOnly="true" 文字不会变色,也是不可编辑的,可点击。

css屏蔽输入:<input style="ime-mode: disabled">

有两种方法第一:disabled="disabled"这样定义之后被禁用的 input 元素既不可用,也不可点击。第二:readonly="readonly" 只读字段是不能修改的。不过,用户仍然可以使用 tab 键切换到该字段,还可以选中或拷贝其文本.

今天在实际开发中遇到一类比较特别的关于IOS的时间比较和取舍问题。其实也就是在IOS上,一般后台给到的数据都是年月日,时分秒都具备的。但是前端页面在显示的时候,有时候没有必要那么的具体,可能就要舍弃时分秒。但是同时也要兼容IOS。所以今天给大家介绍一种非常使用的方法:

var time_register = data.public_user_info.time_register;(后端给的字段显示时间格式)

var time_register1 = time_register.substr(0,10);(把时分秒给去掉,只保留年月日)

var time_register2 = time_register1.replace(/-/g, "-");(兼容IOS)


欢迎关注 技术团队的知乎账号 我们凭团队实例运作以下专栏, 必须干货!

互联网创业专栏 (我们小伙伴的创业历程)

与您一起聊技术 (APP、微信公众号、小程序、H5 技术总结)

互联网产品研发管理 (我们公司对产品结构的管理思路)

我们是不一样的技术团队:

b93760f0b685d63d83d166faec5ae265.png

(我们认为:所有的企业行为,都解读为交易行为,无论是摩拜单车、外卖平台、自动售货机、招聘社区、家政服务,都用交易的语言来表达,我们专栏里面有很多实际案例和开发过程和交付流程)

011c806ed165680b04ffa957fe821b5f.png

(类似于元素周期表,我们把交易拆解成元素级别,根据业务定制组装,完全复原个性化需求,我们专栏里面有很学术也很实际的介绍)

d7e1f91c83bb792d78d05eab48104668.png

(每个项目设置: 导师成长基金、参与人员的奖励,全员股权池,创业氛围浓郁,我们专栏公开分享了我们的一些经验)

dfbce16c5137a0f7dfc4a54248c7ff5a.png

(专治各种复杂的业务场景, 我们通过简洁的元素和分层组合,来完成复杂场景的业务定制,我们在这一块有非常多的案例,在互联网创业专栏里面有详细描述)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值