强制浏览器使用Faux斜体(斜)而不是真正的斜体

Mar*_*yra 9 css fonts

我已经读过很多人在浏览器中没有加载真正的斜体字体样式的问题,我另外想要强制浏览器使用Faux Italic.这是我的css代码:

h2 {
    font-family:"Bell MT", Georgia, serif;
    font-size:31px;
    font-style:oblique;
    font-weight:normal;
    color:#e19614;
}
Run Code Online (Sandbox Code Playgroud)

当我将font-weight设置为粗体或更大时,产生的效果是所需的倾斜字体,但每当我将重量设置为正常(这是所需的设置)时,它会回到真正的斜体字体,在这种情况下(Bell MT)是非常不同的..

有什么建议?

biz*_*lop 8

使用 css 变换的丑陋黑客:

\n\n

http://jsfiddle.net/DQnVS/1/

\n\n
span {\n    display: inline-block;\n -webkit-transform: skewX(-30deg);\n    -moz-transform: skewX(-30deg);\n     -ms-transform: skewX(-30deg);\n      -o-transform: skewX(-30deg);\n         transform: skewX(-30deg);\n\xe2\x80\x8b}\n
Run Code Online (Sandbox Code Playgroud)\n\n

\xe2\x80\x8b

\n

  • 这对于单行文本非常有用,但是当文本大于一行(例如在一个段落中)时,它看起来真的很奇怪。 (2认同)

Juk*_*ela 5

要强制浏览器使用假斜体,请使用字体设置,该字体设置要求italicoblique在指定的字体系列不包含斜体或斜字体的情况下给出(视情况而定)。

如果您需要大胆的斜体Bell MT,则可以执行此操作。Bell MT字体家族具有常规,粗体和斜体字体,但没有粗体斜体。因此,浏览器必须通过算法倾斜的粗体字体或算法粗体的斜体字体来拒绝执行您要求的内容或伪造它。

正如biziclop的答案所展示的那样,您可以使用CSS变换来编写自己的假(假)斜体,或者甚至是假斜体。但是,在要求的斜体或斜角对浏览器可用的情况下,无法强迫浏览器使用其自己的伪造机制。

更新: @JonHanna的回答表明,可以通过在@font-face规则中指定字体而不指定斜体来欺骗浏览器使用假斜体。因此,“可供浏览器使用”是相对的。

PS假斜体/斜体与斜体不同。印刷者可以设计倾斜字体,因为它不仅是普通的倾斜字体,而且不是经典的斜体样式。字体是斜体还是斜体在很大程度上取决于品味和命名。出于大多数实际目的,CSS关键字italicoblique是同义词,因为当请求倾斜但不存在倾斜时,浏览器使用斜体,反之亦然。只有当字体同时具有斜体和斜字体时,它们才真正不同。