我遇到了Firefox中的CSS故障,在IE和Chrome中可以正常工作。 以下示例顯示了多個a
標籤,這些標籤應儘可能最小,a
標籤的.first-capitalized
應該首字母大寫。但與僞選擇器::first-letter
改變破壞了這種行爲。有沒有一個CSS的黑客,所以它的行爲就像在Chrome和IE中一樣?Firefox中的第一個字母故障
(可以顯示在Firefox的正確表示,如果停用和反應在.first-capitalized
選擇集font-size
規則。)
a{
font-size: 14pt;
display: inline-block;
}
.first-capitalized{
font-size: 9pt;
}
.first-capitalized::first-letter{
font-size: 14pt;
}
<a href="">LOREM</a>
<a href="" class="first-capitalized">IPSUM</a>
<a href="">DOLOR</a>
<a href="" class="first-capitalized">SIT</a>
<a href="">AMET</a>
<a href="" class="first-capitalized">CONSETETUR</a>
<a href="">SADIPSCING</a>
<a href="" class="first-capitalized">ELITR</a>
那些fixen不工作可靠,當你刷新20次後,他們似乎失去了他們的功能!
編輯:
我只是寫在JS「固定」從@LukyVi
var continueFlag = true;
for (var i = 0; continueFlag && i < document.styleSheets.length; i++) {
var sheet = document.styleSheets[i];
for (var n = 0; continueFlag && n < sheet.cssRules.length; n++) {
var rule = sheet.cssRules[n];
if (rule.selectorText == '.first-capitalized') {
var orig = rule.style['font-size'];
rule.style['font-size'] = '0px';
continueFlag = false
window.requestAnimationFrame(function (rule) {
//font size = 0px gets rendered
window.requestAnimationFrame(function (rule) {
//font size = orig gets rendered
rule.style['font-size'] = orig;
}.bind(this, rule))
}.bind(this, rule)
)
}
}
}
看起來像第一個字母僞元素的元素佔用儘可能多的空間,就好像整個單詞具有更大的字體大小。然後,當在開發人員工具中進行切換時,firefox修復了此問題(與OP提到的一樣)對我來說,看起來像是一個Firefox問題 – Danield
@Denield精確地說明了我的意思:您對如何解決此問題有任何想法嗎? – Feirell