我試圖使用CSS currentColor作爲邊框顏色來生成CSS三角形,使用:content之後。這在我嘗試過的所有瀏覽器中都很好用,除了一個:Safari似乎是從它生成的第一個三角形緩存currentColor,然後在任何地方使用它。currentColor似乎在Safari中「卡住」
這裏是我所看到的 - 從瀏覽器(和Firefox,和IE9 +)預期行爲:從Safari瀏覽器8.0.4
不正確的行爲在優勝美地10.10.2(同在iOS 8.2 ) - 請注意所有三個三角形是紅色的,他們的元素不是currentColor:
這裏的a fiddle with the full code證明的問題。 相關的CSS:
span {
display: inline-block;
border-bottom: 2px solid currentColor;
}
span::after {
/* Generate a triangle (based on Foundation's css-triangle mixin) */
content:"";
display: inline-block;
width: 0;
height: 0;
border: inset 0.4em;
/* Safari seems to cache this currentColor... */
border-color: currentColor transparent transparent transparent;
border-top-style: solid;
}
.red { color: #c00; }
.blue { color: #009; }
的HTML很簡單:
<div>
<span class="red">Red</span>
<span>Default</span>
<span class="blue">Blue</span>
</div>
這是在Safari中的錯誤?關於CSS規範的解釋問題?
更重要的是,有什麼建議可以解決這個問題?我討厭必須在每個元素的規則之後單獨顯式聲明顏色。 (使用currentColor真的簡化了維護,因爲我們的其他CSS變化。)
這可能類似於[這個問題](http://stackoverflow.com/questions/23936150/issues-with-css-currentcolor-keyword-in-ios-and-safari),這是使用currentColor與其他CSS選擇器。但迄今爲止唯一的迴應聲稱這是預期的行爲(這與所有其他瀏覽器實現似乎有衝突),或者建議完全避免使用currentColor(我認爲這不適用於我的情況)。 – medmunds 2015-04-01 20:39:11