美文网首页
html iOS端去除Input的边框样式和阴影

html iOS端去除Input的边框样式和阴影

作者: shine001 | 来源:发表于2021-11-11 13:41 被阅读0次

屏蔽用户选择
禁止用户选择页面中的文字或者图片

div {
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

复制代码清除输入框内阴影
问题描述:在 iOS 上,输入框默认有内部阴影
解决方式:

input {
  -webkit-appearance: none;
}

复制代码禁止保存或拷贝图像

img {
  -webkit-touch-callout: none;
}

复制代码输入框默认字体颜色设置
设置 input 里面 placeholder 字体的颜色

input::-webkit-input-placeholder,
textarea::-webkit-input-placeholder {
  color: #c7c7c7;
}
input:-moz-placeholder,
textarea:-moz-placeholder {
  color: #c7c7c7;
}
input:-ms-input-placeholder,
textarea:-ms-input-placeholder {
  color: #c7c7c7;
}

复制代码用户设置字号放大或者缩小导致页面布局错误
设置字体禁止缩放

body {
  -webkit-text-size-adjust: 100% !important;
  text-size-adjust: 100% !important;
  -moz-text-size-adjust: 100% !important;
}

复制代码android系统中元素被点击时产生边框
部分android系统点击一个链接,会出现一个边框或者半透明灰色遮罩, 不同生产商定义出来额效果不一样。去除代码如下

a,button,input,textarea{
  -webkit-tap-highlight-color: rgba(0,0,0,0)
  -webkit-user-modify:read-write-plaintext-only; 
}

复制代码iOS 滑动不流畅
ios 手机上下滑动页面会产生卡顿,手指离开页面,页面立即停止运动。整体表现就是滑动不流畅,没有滑动惯性。 iOS 5.0 以及之后的版本,滑动有定义有两个值 auto 和 touch,默认值为 auto。

解决方式
1.在滚动容器上增加滚动 touch 方法

.wrapper {
  -webkit-overflow-scrolling: touch;
}

复制代码2.设置 overflow 设置外部 overflow 为 hidden,设置内容元素 overflow 为 auto。内部元素超出 body 即产生滚动,超出的部分 body 隐藏。

body {
  overflow-y: hidden;
}
.wrapper {
  overflow-y: auto;
}

html iOS端去除Input的边框样式和阴影

input{
  outline-color: invert ;
  outline-style: none ;
  outline-width: 0px ;
  border: none ;
  border-style: none ;
  text-shadow: none ;
  -webkit-appearance: none ;
  -webkit-user-select: text ;
  outline-color: transparent ;
  box-shadow: none;
}

html 篇
常用的meta属性设置
meta对于移动端的一些特殊属性,可根据需要自行设置

<meta content="telephone=no" name="format-detection" />  //禁止 iOS 识别长串数字为电话
<meta name="screen-orientation" content="portrait">  //Android 禁止屏幕旋转
<meta content="email=no" name="format-detection" /> //不让 Android 手机识别邮箱
<meta name="format-detection" content="telephone=no" /> //禁止电话号码识别
<meta name="full-screen" content="yes"> //全屏显示
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,
maximum-scale=1.0,user-scalable=no" /> //H5页面窗口自动调整到设备宽度,并禁止用户缩放页面
<meta name="apple-mobile-web-app-capable" content="yes" />  //当网站添加到主屏幕快速启动方式,可隐藏地址栏,仅针对ios

的safari ios7.0版本以后,safari上已看不到效果
将网站添加到主屏幕快速启动方式,仅针对ios的safari顶端状态条的样式
复制代码a标签唤起原生应用
同样地,我们也可以通过标签属性来开启长按邮箱地址弹出邮件发送的功能:
<a mailto:dooyoe@gmail.com">dooyoe@gmail.com</a> //唤起邮箱

<a href="tel:123456">123456</a> //唤起电话
复制代码js篇
iPhone7用for...in 遍历数组失效
问题描述:最初学习使用js时,觉得for...in遍历比for循环简洁,后期在用户反馈后发现iPhone7不支持用for...in遍历数组
解决方式: 改为for循环遍历
移动端点击事件300 ms延迟问题
问题描述:移动端web网页是有300ms延迟的,往往会造成按钮点击延迟甚至是点击失效。
解决方式:

fastclick可以解决在手机上点击事件的300ms延迟
zepto.js的touch模块,tap事件也是为了解决在click的延迟问题

audio 和 video 在 ios 和 andriod 中自动播放
出于优化用户体验,苹果系统和安卓系统通常都会禁止自动播放和禁止页面加载时使用 JS 触发播放,必须由用户主动点击页面才可以触发播放。通过给页面根元素加touchstart的监听事件实现触发播放
$('html').one('touchstart', function() {
audio.play()
})
复制代码iOS 上拉边界下拉出现空白
问题描述:手指按住屏幕下拉,屏幕顶部会多出一块白色区域。手指按住屏幕上拉,底部多出一块白色区域。
产生原因:在 iOS 中,手指按住屏幕上下拖动,会触发 touchmove 事件。这个事件触发的对象是整个 webview 容器,容器自然会被拖动,剩下的部分会成空白。
解决方式:

document.body.addEventListener(
  'touchmove',
  function(e) {
    if (e._isScroller) return
    // 阻止默认事件
    e.preventDefault()
  },
  {
    passive: false
  }
)

复制代码ios 日期转换 NAN 的问题
将日期字符串的格式符号替换成'/'

'yyyy-MM-dd'.replace(/-/g, '/')

相关文章

网友评论

      本文标题:html iOS端去除Input的边框样式和阴影

      本文链接:https://www.haomeiwen.com/subject/klzwzltx.html