意外行为专门适用于 color
属性:( afaik)
看起来,当元素具有 all:inherit
(或 all: unset
)ios 时,该元素的颜色不惜一切代价与级联规则相对的继承(或Intial)值。
给定以下非常简单的标记
<div>Hi there</div>
与CSS:
body {
color: red;
border: 5px solid red;
}
div {
all: inherit;
color: green;
border: 5px solid green;
}
摘要演示:(使用iOS设备(例如iPhone/iPad)打开,查看问题)
body {
color: red;
border: 5px solid red;
}
div {
all: inherit;
color: green;
border: 5px solid green;
}
<div>Hi there</div>
...我希望div
的文本和边界的产生颜色是绿色的(实际上,这是Chrome和firefox的结果),但是在iOS(10.3 )上*是绿色的,但是文字颜色是红色!
更奇怪的iOS问题是,当元素具有all:inherit
(或未设置)时,似乎无法更改 descendant element!
摘要演示:
body {
color: red;
}
div {
all: inherit;
}
.inner {
color: green;
}
<div>Hi there <span><strong class="inner">inner element</strong></span></div>
...因此,在上面的摘要中,iOS颜色为红色!
注意:Caniuse说iOS Safari在版本9.3起支持CSS all
属性,并且没有报告任何已知问题。
...所以:在iOS中是否有解决方法?
目前,由于这个问题,我看不到使用all
属性的任何方法!
我测试了三个iOS设备:运行iOS 10.3的iPhone 6s,iPhone 7运行iOS 11和运行iOS 11.1
根据此答案为什么CSS"全部:Unset"在Safari浏览器中为MacOS工作很奇怪?
似乎Safari用WebKit-Text-Fill色覆盖所有颜色属性。
因此,请自己使用webkit-text-fill-color修复颜色:)