font-variant: small-caps;
font-size: 12px;
Firefox:
- 大写字母: 12px
- 小写字母: 10px
Chrome:
- 大写字母: 12px
- 小写字母: 8px
如何在不使用JavaScript的情况下协调两者?
font-variant: small-caps;
font-size: 12px;
Firefox:
Chrome:
如何在不使用JavaScript的情况下协调两者?
Webkit浏览器显示小型大写字母比其他浏览器更小,因此..您可以使用CSS媒体查询轻松地检测出像Chrome和Safari这样的webkit浏览器。尝试使用以下代码:
@media screen and (-webkit-min-device-pixel-ratio:0) {
.some-element-using-small-caps {
font-size: .85em
}
}
您可以使用CSS hack来针对不同的浏览器进行定制,例如:
@-moz-document url-prefix() {
//firefox specific css here
}
@media screen and (-webkit-min-device-pixel-ratio:0) {
//chrome specific css here - this will also hit other webkit browsers like safari tho
}
在我看来,一种更好的方法是使用一点点 JavaScript 来检测浏览器并在 HTML 元素上设置一个类,然后您可以将该类用作针对各个浏览器的基础。
最终它会看起来像这样:
<html class="firefox">
...
</html>
.firefox .rulename {
//firefox specific css here
}
当然,对于Chrome和其他任何浏览器也是如此
我遇到了一个类似的问题,但在iPad上的Safari和桌面上的Safari之间出现了更奇怪的问题,显示16px小型大写字母的比例不同。由于某种原因,iPad上的小型大写字母尺寸更大,有点类似Firefox。
通过调整字体大小或将字距减少半个像素左右,可以缓解这个问题,而无需进一步添加hack。实际上是找到一个微小的中间调整,触发一个浏览器但不影响另一个浏览器,以尽可能接近。
我观察到,在Firefox和IE中,字体往往会比Webkit具有更多的中间大小。例如,在IE和Firefox中,15.6px略微大一些或使用更多的跟踪来调整,而15.5px则不同,15.7px、15.8px等也是如此。几乎每0.1像素都有差异。而在Safari中,差异仅在每0.4px左右被感知。
对于我的小型大写字母情况,它创建了一个溢出问题,我使用了15.5px,这与Safari(桌面版)上的16px几乎没有区别,但将IE和Firefox的小型大写字母尺寸尽可能接近Safari的大小。