CSS font-stretch 属性

CSS font-stretch 语法

在 CSS 中,font-stretch 属性用于选择字体的压缩或扩展版本(如果字体包含这些变体),以便使得文本更宽或更窄。

语法:

font-stretch: 关键词或百分比;

说明:

font-stretch 的取值有 2 种。

  • 关键字:比如 normal、ultra-condensed、extra-condensed 等。
  • 百分比:比如 50%、100%、200% 等。

font-stretch 取值的映射关系如下表所示。

font-stretch 取值
关键词 百分比
ultra-condensed 50%
extra-condensed 62.5%
condensed 75%
semi-condensed 87.5%
normal(默认值) 100%
semi-expanded 112.5%
expanded 125%
extra-expanded 150%
ultra-expanded 200%

注意: 并非所有字体使用 font-stretch 都会生效,只有提供了压缩或扩展版本的字体才会生效。如果你发现 font-stretch 无法生效,那是因为该字体并不提供压缩或扩展版本。

CSS font-stretch 摘要

属于 CSS 字体属性
使用频率
是否继承
默认值 normal
兼容性 查看
官方文档 查看
MDN 查看

CSS font-stretch 示例

接下来,我们通过几个简单的例子来讲解一下 CSS font-stretch 属性是如何使用的。

示例 1:font-stretch 无效

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <style>
        p { font-family: Verdana; }
        p:nth-child(1) { font-stretch: 50%; }
        p:nth-child(2) { font-stretch: 100%; }
        p:nth-child(3) { font-stretch: 200%; }
    </style>
</head>
<body>
    <p>www.lvyenet.com</p>
    <p>www.lvyenet.com</p>
    <p>www.lvyenet.com</p>
</body>
</html>

页面效果如下图所示。

font-stretch无效

分析:

这里的 font-stretch 属性并没有生效,这是因为所选的 Verdana 字体并没有提供压缩或扩展的版本。大多数常用字体使用 font-stretch 属性都是无效的,只有指定特殊字体才会有效,请看下面例子。

示例 2:font-stretch 用于指定字体

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <style>
        @font-face {
            font-family: "Inconsolata";
            src: url("https://fonts.gstatic.com/s/inconsolata/v31/QlddNThLqRwH-OJ1UHjlKENVzlm-WkL3GZQmAwPyya15.woff2")
                format("woff2");
            font-stretch: 50% 200%;
        }
        p { font-family: Inconsolata; }
        p:nth-child(1) { font-stretch: 50%; }
        p:nth-child(2) { font-stretch: 100%; }
        p:nth-child(3) { font-stretch: 150%; }
    </style>
</head>
<body>
    <p>www.lvyenet.com</p>
    <p>www.lvyenet.com</p>
    <p>www.lvyenet.com</p>
</body>
</html>

页面效果如下图所示。

font-stretch用于指定字体

分析:

在上面例子中,我们使用了 @font-face 定义了一种名为 “Inconsolata” 的字体。Inconsolata 是一种可变字体,提供从 50% 到 200% 的连续宽度范围。

提示: font-stretch 是使用字体自带的字形,保持了文字的优美比例。如果想要强制拉伸任何字体(哪怕它不支持 font-stretch),我们可以使用 transform: scaleX(0.8)。但这种方式会使得文字变形失真,因此并不推荐用于大段文字。

上一篇: font-weight

下一篇: font-style

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号