在本文中,我们将查看围绕变量字体的令人兴奋的新可能性 - 现在与Opentype可伸缩字体格式捆绑在一起 - 允许单个字体像多个字体一样行为。
钥匙要点> 2008年, @font-face终于卷土重来了,当Apple Safari和Mozilla Firefox实施它时。这是出于为设计人员和开发人员提供自定义字体而不是无法访问的图像的简单方法的必要性。
>直到2012年CSS3字体模块到达字体,字体下载才变得可行。实施后,网页下载的字体只能在该页面上使用,而不会复制到操作系统。字体下载允许浏览器下载和使用远程字体,这意味着Web设计人员现在可以使用未安装在用户计算机上的字体。当Web设计人员找到他们希望使用的字体时,他们只需要在Web服务器上包含字体文件,并且在需要时会自动将其下载给用户。使用 @font-face规则引用了这些字体。>要使用 @font-face规则,我们必须定义字体名称并指向字体文件:
<span><span>@font-face</span> { </span> <span>font-family: Avenir Next Variable; </span> <span>src: <span>url(AvenirNext_Variable.woff)</span>; </span><span>} </span>字体文件可以是五种不同格式之一:TTF,WOFF,WOFF2,SVG或EOT。每个都有自己的优势和缺点。简而言之,EOT是由Microsoft创建的,仅受Internet Explorer的支持。 TTF是Microsoft和Apple创建的基本类型字体,它在任何地方都可以正常工作。 SVG基于图像替换技术,仅适用于网络。最后,Woff和Woff2也是专门为Web创建的,基本上是带有额外压缩的TTF文件。
>
>变量字体>该技术允许单个字体的行为像多种字体一样。它是通过定义字体内的变化来完成的。这些变化源于每个角色只有一个大纲的事实。构建此大纲的观点有关于如何表现的指示。没有必要定义多个字体权重,因为它们可以在非常狭窄和非常宽的定义之间插值。这也使得在介于两者之间的样式中也可以,例如,半折和粗体。这些变化可能沿字体的一个或多个轴作用。在下图上,我们在字母A上有一个大纲插值的示例。
为什么可变字体相关?>
可变字体可以为我们的字体结构和性能改进带来简单性。以我们的网站需要五种字体样式的情况为例。提供能够渲染这五种样式的单个变量字体要比加载五个不同的字体文件要小得多,更快。
当前有两种不同的使用可变字体的方法。首先,我们将研究实施这些实施的现代方式。 CSS规范强烈使用字体 - 光学尺寸,字体风格,字体权重和字体 - 拉伸来控制任何标准轴。
>字体风格
> font-weight
此属性从字体中选择一个普通,凝结或展开的面部。就像字体重量属性一样,它可以是一个命名的实例,例如超固定或正常或百分比在0%至100%之间。此外,命名实例将映射为已知百分比。例如,传递的超敏将映射到62.5%。
段落。
请参阅codepen上的sitePoint(@sitepoint)的笔变量字体。
当前,我们未经风格的网页看起来像这样:
>要使用变量字体,我们必须找到合适的文件。 V-Fonts项目提供了一个字体存储库,我们可以在其中搜索和实验所有类型的可变字体。我决定使用avenirnext字体,然后从其官方的github页面链接它。
>
然后,我们需要创建一个CSS文件来加载此新字体:
由于浏览器支持问题,此示例仅在Safari和Chrome中应用字体变化。
<span><span>@font-face</span> { </span> <span>font-family: Avenir Next Variable; </span> <span>src: <span>url(AvenirNext_Variable.woff)</span>; </span><span>} </span>>请参阅codepen上的sitepoint(@sitepoint)的笔源变量字体。
>大多数时候我们还需要两个不同的字体文件:一个用于斜体,一个用于常规字体(罗马)。之所以发生这种情况,是因为这些字体的构造可能会完全不同。
>
使用字体变量 - 安排
声明等于以下CSS声明:
<span><span>@font-face</span> { </span> <span>font-family: Avenir Next Variable; </span> <span>src: <span>url(AvenirNext_Variable.woff)</span>; </span><span>} </span>
,但是我们可以走得更远。当我们谈论字体格式时,我们说WOFF2文件本质上是带有额外压缩的TTF文件。 WOFF2文件较小,因为它们使用自定义预处理和压缩算法来交付约30%的文件大小比其他格式的文件大小。
>
Google提供了一个命令行工具,该工具将压缩我们的文件将其转换为woff2格式。
在工具的官方GitHub页面上,我们可以找到有关它的所有信息。要在UNIX环境中安装它,我们可以使用以下命令:
安装后,我们可以使用以下方式使用它来压缩我们的变量字体文件
<span><span>@font-face</span> { </span> <span>font-family: 'Avenir Next Variable'; </span> <span>src: <span>url('AvenirNext_Variable.ttf')</span> format('truetype'); </span><span>} </span> <span>body { </span> <span>font-family: 'Avenir Next Variable', sans-serif; </span><span>} </span>>我们最终得到了一个42KB文件,该文件将文件大小减半。要使用此文件,我们只需要修改来源文件及其格式即可容纳此新文件:
>现在,我们有一个42KB文件,该文件可用于我们页面上的所有字体权重。 WOFF2格式的唯一缺点是Internet Explorer不支持它。
<span>h1 { </span> <span>font-family: 'Avenir Next Variable'; </span> <span>font-weight: 430; </span><span>} </span>>
>为不同的浏览器提供不同的文件
<span>p { </span> <span>font-variation-settings: 'wght' 630, 'wdth' 88; </span><span>} </span>>一些现代浏览器已经支持变量字体(Firefox开发人员版本具有一定程度的支持,Chrome 62,Chrome Android,Safari IOS和Safari),但可能有些情况下,我们发现了一个。 > 为了解决这个问题,我们需要为这些浏览器提供不可变化,或者使用操作系统字体后备。
请参阅Codepen上的SitePoint(@sitepoint)的Pen多个字体。
如果我们在支持变量字体的浏览器上检查结果,例如Chrome,我们可以看到以下内容:
在不支持可变字体(例如Firefox)的浏览器上,将加载第二个字体,结果看起来像这样:
<span>p { </span> <span>font-weight: 630; </span> <span>font-stretch: 88; </span><span>} </span>>
但是,如果我们仍然必须为不支持变量的浏览器提供不可变化的字体,那么我们是否会失去使用可变字体获得的所有性能?如果浏览器只能加载标准字体,我们将失去可变字体的性能和渲染优势。在这种情况下,最好是退回到可比的操作系统字体,而不是用许多固定字体代替。
结论>
经常询问有关可变字体的问题(常见问题解答)我可以使用Google字体使用可变字体? 。当您在Google字体上选择字体时,您可以选择“变量”选项以下载变量字体版本。然后,您可以在CSS中使用“字体变量 - 分配”属性来调整字体的变化。
>有许多流行的变量字体可用,包括Roboto,Source SANS,Amstelvar和Decovar。这些字体提供了广泛的变化,适合各种设计样式。您可以在v-fonts.com或Google字体等网站上找到更多可变字体。
>
>可变字体的局限性是什么?
以上是可变字体:它们是什么,以及如何使用它们的详细内容。更多信息请关注PHP中文网其他相关文章!