我发现浏览器之间在处理字体大小方面不一致(在Mac OS X 10.11.4上)。我想知道这是Firefox中的错误还是CSS中的错误,还是我不了解CSS?
该JSFiddle显示了详细信息。在这样的部分中:
<pre>Start of pre section
<code>**problem here!**</code>
End of pre section
</pre>
样式会code { font-family: Courier; }
更改Safari和Chrome显示的字体大小,但不会更改Firefox中显示的字体大小。在其他部分中,code
所有浏览器的元素大小都从13px增加到16px。
font-family
在所有浏览器中设置了为什么字体大小从13px增加到16px ?
也许Firefox正在改变,font-family
但没有改变font-size
。然而,它确实改变字体大小在其他地方一样,在code
一个内部p
元素或列表内。
我猜测解决方案是在我关心的地方仅通过像素单位积极设置显式字体大小(忽略可访问性)。
引自2006年可能与之相关的Firefox错误:错误328621-默认monospace
字体大小奇怪-与比例字体不同
尽管浏览器之间的可移植性问题对我而言似乎并不重要。上一次我想标记HTML以使等距部分在Mozilla和M $ IE中都显示相同时,我不得不求助于绝对字体大小,由于它们带来的可访问性问题,应该绝对避免这种情况。
是的,有一个简单的解决方法-更改设置。但是大多数用户将使用默认值。:-(
这个问题并不新鲜。多年以来,众所周知,等宽字体的浏览器处理在所有浏览器中都是令人难以置信的混乱和不一致。有许多变通办法,它们不需要您覆盖用户设置的等宽字体首选项,其中最令人困惑的是指定
font-family: monospace, monospace;
没错:在字体堆栈末尾有两个 monospace
关键字。没有人知道为什么这样做。就是这样。
值得一提的是,Firefox的UA样式表包含对-moz-fixed
关键字的引用,该关键字引用了用户设置的首选项,尽管它是属性的值,但包括族和大小font-family
。Firefox附带的首选项设置为13px,无论系统的默认等宽字体是哪种。似乎monospace, monospace
迫使浏览器根据规范计算元素的字体大小,同时至少仍保留首选的等宽字体族。但这只是一个猜测。
这是一个错误吗?这取决于您问谁。如果您询问浏览器供应商,他们可能会说这是故意的。如果您问其他作者,他们可能还会称其为错误。这是否违反规范?不可以,因为该规范允许浏览器根据自己的喜好实现默认设置。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句