代码之家  ›  专栏  ›  技术社区  ›  hitautodestruct

@FONT face如何工作?

  •  7
  • hitautodestruct  · 技术社区  · 15 年前

    我知道使用@FONT face可以让浏览器下载自定义字体并在网页中使用它,就像任何系统字体一样。

    我想知道的是,浏览器是对字体进行编码,还是在不公开的情况下使用它?

    谢谢

    3 回复  |  直到 15 年前
        1
  •  6
  •   Yi Jiang G-Man    15 年前

    浏览器无法保护字体的来源。一旦浏览器接收到信息,您就可以安全地假设用户对您发送的任何信息都具有完全访问权。

    因此,在法律层面(通过选择允许嵌入的字体)或通过服务器端模糊方案来保证字体的安全性。例如,查看通过typekit嵌入的字体:

    @font-face {
        font-family:"rosewood-std-fill-1";
        src:url(data:font/opentype;base64,d09GRgABAAAAAEa4ABMAAAAA2XwA.....);
        font-style:normal;
        font-weight:400;
    }
    

    该字体通过base64编码过程进行模糊处理。此外,字体分为两部分,字形的数量仅限于网站所需的字形。

    另一方面,看看fontsquirre和google字体API @font-face 工具包中,您可以看到字体的实际来源已发送给用户-不需要混淆。此外,字体所有者可能要求某种形式的属性,例如

    如果字体是免费字体($0.00 许可费),您可以使用此字体 用于字体嵌入,但仅当 您已打开www.exljbris.nl的链接 您的页面和/或发布此通知

    /* A font by Jos Buivenga (exljbris) -> www.exljbris.com */ 
    

    在CSS文件中尽可能接近 到声明 字体嵌入此字体。

    见于 this license . 因此,从所有这些方面,我们可以安全地得出结论,字体安全问题不会发生在客户端,而是落在开发人员的肩上,因此浏览器不能也不会采取任何措施阻止用户访问这些字体。

        2
  •  2
  •   Seth    15 年前

    @font-face 告诉浏览器在哪里下载实际字体。

    例如,当使用 Google's web fonts ,它们给您这样的CSS:

    @font-face {
      font-family: 'Cantarell';
      font-style: normal;
      font-weight: normal;
      src: local('Cantarell'), url('http://themes.googleusercontent.com/font?kit=p5ydP_uWQ5lsFzcP_XVMEw') format('truetype');
    }
    

    如果打开URL( http://themes.googleusercontent.com/font?kit=p5ydP_uWQ5lsFzcP_XVMEw )您的浏览器将下载实际的真字体文件。

    我用这个方法下载了谷歌的字体(所以我的photoshop模型有正确的字体)。

        3
  •  0
  •   stevelove    15 年前

    在大多数情况下,字体文件是公开的,因为它直接从您的CSS文件链接,因此任何有足够智能的人都可以下载字体并将其安装到他们的计算机上。这就是为什么大多数商业字体许可证都禁止在 @font-face . 但有一些技术限制了这一点。例如,检查字体松鼠的@font face生成器上的“仅Web”选项。

    推荐文章