2019-12-13 18:27:23 weixin_43794073 阅读数 4

页面代码里应用了input或textarea,需求使其不可点击,此时若使用disabled,会发现ios上的input/textarea颜色会变浅很多,而安卓上样式是正常的。解决办法,就是对处于disabled状态的input/textarea重新设置透明度。

input[disabled], input:disabled,
textarea[disabled], textarea:disabled {
      -webkit-opacity: 1;
      opacity: 1;
}

若担心兼容性不够,可以同时把文字颜色再设置上

input[disabled], input:disabled,
textarea[disabled], textarea:disabled {
	  color: #333 !important;//需要的颜色
      -webkit-text-fill-color: #333;//需要的颜色
      -webkit-opacity: 1;
      opacity: 1;
}
2019-11-21 14:29:45 weixin_29491885 阅读数 13

本以为改变input[disabled]的字体颜色只需要改变coloropacity就可以了,结果发现在iPhone手机和Mac的Safari浏览器中都不起作用。所以接下来我们来研究一下它。

1.设置 -webkit-text-fill-color

input:disabled,
input[disabled] {
  -webkit-text-fill-color: #2c363f;
  opacity: 1;
}

这时发现起作用了,但是还存在一个问题就是input 的placeholder 和颜色也被改成了 #2c363f 这个颜色,但是我们需要保持 placeholder 原来的颜色,于是还需要添加另外的css

2.设置 placeholder

input[disabled]::placeholder {
  -webkit-text-fill-color: darkgray;
}

到这里就解决了手机和Safari浏览器的问题。

补充一些其他需注意的表单样式

input,
button,
select,
textarea {
  /*去掉ios阴影*/
  -webkit-appearance: none;
  /*去掉ios点击高亮*/
  -webkit-tap-highlight-color: transparent;
  /*聚焦时去掉轮廓*/
  outline: none;
  /*去掉边框*/
  border: none;
  
}

select,
button {
  /*去掉灰色背景*/
  background: transparent;
}

textarea{
  /*禁止手动改变文本框大小*/
  resize: none;
}
我的个人博客有空来坐坐

https://www.wangyanan.online

没有更多推荐了,返回首页