上一周在制作某个移动端项目的时候,发现当我们点击链接,整个标签会出现颜色块并会闪烁一下,不仅影响美观,而且会极大降低了用户体验。在发现了这个情况之后,针对这个问题,与同事展开了激烈的讨论。我当时就想,这个是不是因为系统的问题造成的bug呢?当时就找同事借了点机子进行了一番测试,得出来的结果:不管是安卓还是IOS系统,都会触发这个问题。在多个网站测试之后,发现百度的链接点击时也会产生有颜色块(如:下图所示),但是淘宝和京东的移动端就没有这种情况,这是如何做到的呢?
在对淘宝的移动端代码进行研究之后,发现他们在html设置了一个属性-webkit-tap-highlight-color:rgba(0,0,0,0);来解决颜色块这个问题,如下图所示:
-webkit-tap-highlight-color :rgba(0, 0, 0, 0);是一个不规范的属性(unsupported WebKit property),它并没有出现在 CSS 规范草案中。通过该属性的设置,会覆盖掉链接点击时显示的高亮颜色。当透明度设为0,我们再去点击链接时就不会出现一个颜色块了;当透明度设为1,元素在点击时不可见。
兼容性:iOS 1.1.1及更高版本的Safari浏览器可用。大部分android手机也是支持的,只是显示效果有所不同。
在对淘宝的移动端代码进行研究之后,发现他们在html设置了一个属性-webkit-tap-highlight-color:rgba(0,0,0,0);来解决颜色块这个问题,如下图所示:
-webkit-tap-highlight-color :rgba(0, 0, 0, 0);是一个不规范的属性(unsupported WebKit property),它并没有出现在 CSS 规范草案中。通过该属性的设置,会覆盖掉链接点击时显示的高亮颜色。当透明度设为0,我们再去点击链接时就不会出现一个颜色块了;当透明度设为1,元素在点击时不可见。
兼容性:iOS 1.1.1及更高版本的Safari浏览器可用。大部分android手机也是支持的,只是显示效果有所不同。