0
<html>

<head>
<title> </title>

<body>
    <font face="file:///E:/softwares/FONTS/alpha kufi regular.ttf" size="+2"> This is a tester for a font, that may not be installed on the machine </font>
</body>

</head>

</html>

此代码段未以预期字体显示句子。这可能是什么原因?

注意:我知道字体标签不受 HTML 5 支持,并且被 HTML 4 弃用。

4

4 回答 4

4

这里有两个基本问题:HTMLface属性(以及它的 CSS 对应物,font-family属性)需要一个字体系列名称作为值,而不是字体文件的 URL,并且file:URL 本质上是系统相关的,可能无法工作在许多情况下。

以下工作,前提是字体文件alpha_kufi_regular.ttf(最好避免字体名称中的空格,因为 URL 中不允许使用空格)放置在fonts具有 CSS 文件的目录的子目录中,并且浏览器支持 TrueType 字体作为“网络字体” ”(这不必是“网络字体”的用法,但可以是本地的;技术是相同的):

<style>
@font-face {
    font-family: AlphaKufi;
    src: url('fonts/alpha_kufi_regular.ttf');
}
    </style>
<font face="AlphaKufi" size="+2"> This is a tester for a font, 
that may not be installed on the machine </font>

由于并非所有浏览器都支持 TrueType 字体作为“网络字体”,如果您打算在网页上使用该字体,请考虑使用FontSquirrel @font-face 生成器。

字体设置通常使用 CSS 而不是 HTML 更好,但这是一个不同的问题。理论上,“网络字体”也不需要与 HTML 一起使用<font face="...">(没有规范要求),但实际上它们可以。

于 2012-12-27T12:25:14.367 回答
1

我找不到它的参考,但我最好的猜测是您无法使用file://协议(本地文件系统)访问字体。如果页面在线或通过本地服务器(http://localhost 或同等服务器)访问,这当然是正确的。

此外,根本没有理由使用<font>. 它可能无法工作,只是因为浏览器不再完全支持它。

编辑:事实上,我不确定<font>是否曾经支持使用字体文件而不是字体名称。

提供字体文件的解决方案是使用 CSS 的@font-face.

于 2012-12-27T12:12:14.287 回答
0

这是因为font'sface属性不采用字体文件的路径。它采用逗号分隔的字体名称列表。浏览器在系统中搜索已安装的字体并从那里加载相关的字体(如果存在)。

如果你想指定你自己的,你可能需要使用CSS @font-face

于 2012-12-27T12:26:25.340 回答
0

使用 Google Web Fonts API 将 Web 字体添加到您的页面:

<html>

<head>
<link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=alpha kufi regular">
<style>
  body {
    font-family: 'alpha kufi regular';
    font-size: 48px;
  }
</style>
<title> </title>

<body>
    <div>This is a tester for a font, that may not be installed on the machine</div>
</body>

</head>

</html>

~参考

于 2012-12-27T12:45:28.293 回答