为什么浏览器使用Courier而不是Consolas用于'font-family:Consolas,Courier',即使Consolas可以通过fonts-conf替换获得?

时间:2015-06-21 07:08:40

标签: css firefox fonts debian iceweasel

我正在使用XFCE4在Debian上使用Iceweasel浏览器(重新命名的Firefox)。

我在〜/ .config / fontconfig / fonts.conf中定义了一个别名规则。

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
    <alias>
        <family>Consolas</family>
        <prefer><family>DejaVu Sans Mono</family></prefer>
    </alias>
</fontconfig>

fc-match的输出确认Consolas现在将被替换为DejaVu Sans Mono

lone@debian:~$ fc-match Consolas
DejaVuSansMono.ttf: "DejaVu Sans Mono" "Book"
lone@debian:~$ fc-match Courier
n022003l.pfb: "Nimbus Mono L" "Regular"

现在,请在JSFiddle浏览器中查看以下输出:http://jsfiddle.net/yyvgcw02/

enter image description here

上面的屏幕截图显示,浏览器已正确使用DejaVu Sans Mono ConsolasNimbus Mono L Courier

但是,我希望它也DejaVu Sans Mono使用Consolas, Courier,但上面的输出显示它已再次使用Nimbus Mono L Consolas, Courier

为什么DejaVu Sans Mono没有使用Consolas, Courier,即使Consolas首先出现在列表中,系统上也可以找到DejaVu Sans Mono的字体?fc-match

即使以下〜/ .config / fontconfig / fonts.conf也没有效果。 <?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig> <match> <test name="family"><string>Consolas</string></test> <edit name="family"><string>DejaVu Sans Mono</string></edit> </match> </fontconfig> 的输出和浏览器中的输出与以下配置保持一致。

binding="strong"

已知解决方案

这是一个适合我的解决方案。如果我将edit属性添加到DejaVu Sans Mono标记,如下所示〜/ .config / fontconfig / fonts.conf,则浏览器会使用font-family: Consolas, Courier <?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig> <match> <test name="family"><string>Consolas</string></test> <edit name="family" binding="strong"><string>DejaVu Sans Mono</string></edit> </match> </fontconfig> ,如下所示下面的screeshot。

binding="strong"

enter image description here

问题

我想了解浏览器为什么DejaVu Sans Mono需要在Debian上使用font-family: Consolas, Courier binding="strong"

即使没有fc-match ConsolasDejaVuSansMono.ttf: "DejaVu Sans Mono" "Book"也在输出DejaVu Sans Mono,但为什么浏览器在这种情况下无法使用/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.55.x86_64/bin/keytool -import -alias tomcat -trustcacerts -file certificate.crt -keystore $OBM_HOMEconf/keystore

0 个答案:

没有答案