iOS 9删除了使用CSS更改某些符号颜色的可能性

我们已经在我们的网站上使用了诸如复选标记(✔)之类的各种符号,并且注意到随着iOS 9的发布,Safari和其他浏览器已经被更新为不考虑颜色属性。 在Safari 9和iOS 9上都可以find相同的行为。

<div>test ✔</div> div { color: #ff0000; -webkit-appearance: none; } 

https://jsfiddle.net/afb14b2k/1/

上面的例子在其他平台(例如OS X)上显示得很好。 有没有一个已知的解决方法,让这个在iOS 9上工作?

编辑:看来,这只适用于某些变种的复选标记(和其他符号变体)。 在这种情况下,我们使用重复选中标记(U + 2714)。 当切换到常规复选标记(U + 2713)时,iOS没有对其应用任何格式,我们可以对其应用自定义颜色。

在iOS 9中, U+2714 HEAVY CHECK MARK包含在Apple的表情符号集中。 就像其他的表情符号一样,它被绘制成一个全色位图而不是单色vector字形,所以你不能用CSS来改变它的颜色。 (实际上,不能保证复选标记甚至是黑色的, 其他平台会以各种不同的颜色绘制它们)

要使iOS将复选标记绘制为可重新着色的常规文本,您需要使用U+FE0E VARIATION SELECTOR-15字符。 如果您在✔后面添加变体select器字符,则iOS将使用常规文本版本(✔︎)而不是表情符号版本(✔)。 OS X没有表情符号变体,所以它们看起来是一样的,但在iOS上,变体看起来有些不同:

iOS上的常规文本版本和表情符号版本。

在HTML中,你可以添加一个&#xfe0e; 直接跟着你的复选标记。

 div { color: red; } 
 <div> ✔ without variation selector<br> ✔&#xfe0e; with variation selector </div> 

如果您尝试使用CSS-style对元素进行样式设置,则应该如何确保图标在iOS中变绿。 只有“✔”,iOS不会改变图标的​​颜色。

 .myElement:after { color:green; content: "✔\fe0e"; }