CSS @font-face - font-stretch



CSS 描述符font-stretch 允许作者在 @font-face at 规则中为指定的字体提供正常、压缩或扩展的字体。

描述符 font-stretch 专门用于指定字体 face'e stretch。这些字体对应于同一字体系列的不同样式。

描述符 font-stretch 的值与其对应的 font-stretch 属性的值相同。

不应将描述符 font-stretch font-stretch 属性混淆。font-stretch 描述符仅与 @font-face at 规则一起使用,以显式选择该规则的扩展或缩小字体。然后,在样式表中的其他位置使用 font-stretch 属性,将该字体宽度应用于元素。

可能的值

CSS 描述符 font-stretch 可以具有以下值之一:

  • normal:指定普通字体。
  • Semi-condensed、condensed、extra-condensed、ultra-condensed:指定比正常字体更压缩的字体,其中 ultra-condensed 是最压缩的形式。
  • 半展开、展开、超展开、超展开:指定比正常情况更扩展的字体,其中超扩展是展开程度最高的形式。
  • <percentage>:百分比值,可以是 50% 到 200%(含)。不允许使用负值。

语法


 font-stretch = "normal" | <'font-stretch'>;

<font-stretch> 的声明方式如下:


/* single values */
font-stretch = "normal";
font-stretch = "semi-condensed";
font-stretch = "condensed";
font-stretch = "extra-condensed";
font-stretch = "ultra-condensed";
font-stretch = "semi-expanded";
font-stretch = "expanded";
font-stretch = "extra-expanded";
font-stretch = "ultra-expanded";
font-stretch = 75%;
font-stretch = 200%;

/* multiple values */
font-stretch = 50% 120%;
font-stretch = semi-condensed ultra-condensed;

关键字到数值映射

下表说明了关键字值及其对应的百分比值的映射:

关健词 百分比
normal 100%
semi-condensed 87.5%
condensed 75%
extra-condensed 62.5%
ultra-condensed 50%
semi-expanded 112.5%
expanded 125%
extra-expanded 150%
ultra-expanded 200%

可变字体

许多字体都有特定的宽度,对应于其中一个键术语值。但是有些字体在很大程度上支持一系列细粒度的拉伸,这些被称为可变字体。它们使用户能够更好地控制他们选择的字体粗细。为了指定这些字体的拉伸,百分比值很有用。

TrueType OpenType 变量字体的 wdth 变体在实现不同的字形宽度时很有用。

可访问性问题:过于紧凑的字体,尤其是在对比度颜色比率低的字体的情况下,对于有阅读障碍和其他认知疾病的人来说可能不是很清楚。

CSS font-stretch - 百分比值

以下示例演示了字体拉伸值的设置,使用 @font-face 规则内使用的百分比范围 50% 和 200%:


<html>
<head>	
<style>
	 	@font-face {
	 	 	 src: local("monospace");
	 	 	 font-family: "f1";
	 	 	 font-style: normal;
	 	 	 font-stretch: 50% 200%;
	 	}

	 	.container {
	 	 	 font: 2rem "f1", sans-serif;
	 	}

	 	.font-condensed {
	 	 	 font-stretch: 50%;
	 	}

	 	.font-normal {
	 	 	 font-stretch: 100%;
	 	}

	 	.font-ultra-expanded {
	 	 	 font-stretch: 200%;
	 	}

	 	.font-semi-condensed {
	 	 	 font-stretch: semi-condensed;
	 	}

	 	.font-extra-condensed {
	 	 	 font-stretch: extra-condensed;
	 	}

	 	.font-ultra-condensed {
	 	 	 font-stretch: ultra-condensed;
	 	}

	 	.font-semi-expanded {
	 	 	 font-stretch: semi-expanded;
	 	}

	 	.font-extra-expanded {
	 	 	 font-stretch: extra-expanded;
	 	}
</style>
</head>
<body>
	 	<div class="container">
	 	 	 <p class="font-condensed">ultra-condensed (50%)</p>
	 	 	 <p class="font-normal">normal (100%)</p>
	 	 	 <p class="font-expanded">ultra-expanded (200%)</p>
	 	 	 <p class="font-semi-condensed">semi-condensed</p>
	 	 	 <p class="font-ultra-condensed">ultra-condensed</p>
	 	 	 <p class="font-semi-expanded">semi-expanded</p>
	 	 	 <p class="font-extra-expanded">extra-expanded</p>
	 	 	 </div>
</body>
</html>