在iPhone上查看电话号码时,是否有办法删除默认的蓝色超链接颜色?像一个特定的移动Safari标签或CSS添加?
我只在数字的地方有这个:
<p id="phone-text">Call us on <strong>+44 (0)20 7194 8000</strong></p>
这里没有超链接,但iPhone仍然将这个文本数字显示为超链接。我在我的一些网站上有这个渲染问题,但不明白为什么会发生这种情况。
我确实读过这篇文章:
移动HTML渲染数字
但这是唯一可行的解决方案吗?
如果您不打算在您的页面上有任何电话号码,那么
<meta name="format-detection" content="telephone=no">
会工作得很好。但从修辞上讲,如果你打算混合使用电话号码和非电话号码呢?
假设您只是将数字硬编码到HTML中,那么“在数字中间插入一些东西”的技巧将会起作用。但是对于动态页面,例如使用PHP从查询中输出数值数据,它们几乎没有用处。
例如,我正在生成一个城市人口列表。有些用户数量大到足以让Mobile Safari把它们转换成电话号码链接。幸运的是,我所要做的就是使用PHP number_format()在数组输出周围插入“thousand”逗号:
<?PHP echo number_format($row["population"])
这种格式足以让Mobile Safari相信这个号码有更具体的用途,所以它不再把我的大号码默认为电话链接。@davidcondrey建议使用<a href="tel:18001234567">1-800-123-4567</a>来指定数字的用途,也是如此。
总之,Safari Mobile显然很注意语义。考虑到HTML5是围绕语义标记构建的,而搜索引擎也依赖于语义标记,我打算尽可能多地使用它。
我一直在
1.
<a href="tel:5551231234">
2.
<meta name="format-detection" content="telephone=no">
试着让同样的代码适用于台式机和iPhone。问题在于,如果你使用了第一个选项,并从桌面浏览器中点击它,它会给出一个错误消息,如果使用了第二个选项,它会禁用iPhone iOS5上的标签呼叫功能。
所以我试了又试,结果iPhone把电话号码当作一种特殊类型的链接,可以用CSS格式化。我把数字包装在一个地址标签(它将与任何其他HTML标签,只是尽量避免< >标签),并在CSS样式为
.myDiv address a {color:#FFF; font-style: normal; text-decoration:none;}
在桌面浏览器中显示一个纯文本,在Safari移动浏览器中显示一个链接,并在选项卡上弹出Call/Cancel窗口,没有默认的蓝色和下划线。
只是要注意应用于数字的css规则,特别是在使用填充/边距时。