正确使用CSS @ font-face

时间:2014-01-29 14:54:07

标签: css fonts

您好我有一个关于使用CSS @ font-face创建字体系列的快速问题。

传统上,我曾经设置过这样的CSS字体:

@font-face {
    font-family: 'My Font Regular';
    src: url('fonts/myfont.ttf');
}
@font-face {
    font-family: 'My Font Bold';
    src: url('fonts/myfont-bold.ttf');
}
p { font-family: "My Font Regular";}
strong {font-family: "My Font Bold";}

但是我最近发现你可以这样做:

@font-face {
    font-family: 'My Font';
    src: url('fonts/myfont.ttf');
    font-style:normal;
    font-weight:normal;
}
@font-face {
    font-family: 'My Font';
    src: url('fonts/myfont-bold.ttf');
    font-style:normal;
    font-weight:bold;
}
p { 
font-family: "My Font" ; 
font-style:normal;
font-weight:normal;
}
strong { 
font-family: "My Font" ;
font-style:normal;
font-weight:bold; 
}

我的问题是,如果我使用粗体的第二种技术,例如,文本是否仍然使用自定义.eot呈现,或者浏览器是否会尝试模拟它而不使用实际的粗体字体文件?

由于

2 个答案:

答案 0 :(得分:0)

以下是我使用的示例:

        @font-face {
            font-family: 'Franklin Demi';
            src: url('FranklinDemi.eot'),
                 url('FranklinDemi.ttf') format('truetype'),
                 url('FranklinDemi.svg#font') format('svg');
            }
        @font-face {
            font-family: 'Franklin Heavy';
            src: url('FranklinHeavy.eot'),
                 url('FranklinHeavy.ttf') format('truetype'), 
                 url('FranklinHeavy.svg#font') format('svg');
            }
        .sidansTitel{
            font-family: 'Franklin Demi';
            font-size: 22pt;
            color: #8b9ba7;
            text-shadow: 0 1px 0 rgba(0,0,0,0.01);
            }
        .sidansTitel b{
            font-family: 'Franklin Heavy';
            font-weight: normal;
            font-style: normal;
            }

同时设置font-weight: normal;font-style: normal;会使字体呈现在ie / ff / chrome中,如果没有它,它看起来像Chrome中的垃圾。我认为它看起来像Chrome中的废话,因为它试图用粗体渲染粗体字,应该由此修复。

编辑:拼写

答案 1 :(得分:0)

如果您的字体文件是粗体字体,设置font-weight: bold将是多余的,并且不需要声明font-weight: normal,因为这是默认值。您还应该使用超过.eot个文件,这样您就可以像其他人一样建议使用其他浏览器。