font-stretch
CSS descriptor allows authors to specify a normal, condensed, or expanded face for the fonts specified in the
@font-face
rule.
For a particular font family, authors can download various font faces which correspond to the different styles of the same font family, and then use the
font-stretch
descriptor to explicitly specify the font face's stretch. The values for the CSS descriptor is same as that of its corresponding font property.
/* Single values */ font-stretch: ultra-condensed; font-stretch: extra-condensed; font-stretch: condensed; font-stretch: semi-condensed; font-stretch: normal; font-stretch: semi-expanded; font-stretch: expanded; font-stretch: extra-expanded; font-stretch: ultra-expanded; font-stretch: 50%; font-stretch: 100%; font-stretch: 200%; /* multiple values */ font-stretch: 75% 125%; font-stretch: condensed ultra-condensed;;
font-weight
property is described using any one of the values listed below.
normal
Specifies a normal font face.
semi-condensed
,
condensed
,
extra-condensed
,
ultra-condensed
Specifies a more condensed font face than normal, with ultra-condensed as the most condensed.
semi-expanded
,
expanded
,
extra-expanded
,
ultra-expanded
Specifies a more expanded font face than normal, with ultra-expanded as the most expanded.
<percentage>
<percentage>
value between 50% and 200% (inclusive). Negative values are not allowed for this property.
In earlier versions of the
font-stretch
specification, the property accepts only the nine keyword values. CSS Fonts Level 4 extends the syntax to accept a
<percentage>
value as well. This enables variable fonts to offer something more like a continuum of character widths. For TrueType or OpenType variable fonts, the "wdth" variation is used to implement varying widths.
If the font does not provide a face that exactly matches the given value, then values less than 100% map to a narrower face, and values greater than or equal to 100% map to a wider face.
The table below shows the mapping between keyword values and numeric percentages:
| Keyword | Percentage |
|---|---|
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% |
Most fonts have a particular width which corresponds to one of the keyterm values. However some fonts, called variable fonts, can support a range of stretching with more or less fine granularity, and this can give the designer a much closer degree of control over the chosen weight. For this, percentage ranges are useful.
For TrueType or OpenType variable fonts, the "wdth" variation is used to implement varying glyph widths.
People with dyslexia and other cognitive conditions may have difficulty reading fonts that are too condensed, especially if the font has a low contrast color ratio .
| 相关 at-rule |
@font-face
|
|---|---|
| 初始值 |
normal
|
| 计算值 | 如指定 |
<font-stretch-absolute>{1,2}where
<font-stretch-absolute> = normal | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded | <percentage>
The following find a local Open Sans font or import it, and allow using the font for normal, semi-condensed and semi-expanded states.
@font-face {
font-family: "Open Sans";
src: local("Open Sans") format("woff2"),
url("/fonts/OpenSans-Regular-webfont.woff") format("woff");
font-stretch: 87.5% 112.5%;
}
| 规范 | 状态 | 注释 |
|---|---|---|
|
CSS Fonts Module Level 4
The definition of 'font-stretch' in that specification. |
工作草案 | |
|
CSS Fonts Module Level 3
The definition of 'font-stretch' in that specification. |
候选推荐 |
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
font-stretch
|
Chrome 完整支持 62 | Edge 完整支持 17 | Firefox 完整支持 62 | IE 不支持 No | Opera 完整支持 49 | Safari 完整支持 10.1 | WebView Android 完整支持 62 | Chrome Android 完整支持 62 | Firefox Android 完整支持 62 | Opera Android 完整支持 41 | Safari iOS 完整支持 10.3 | Samsung Internet Android 完整支持 6.0 |
完整支持
不支持
font-display
font-family
font-weight
font-style
font-variant
font-feature-settings
font-variation-settings
src
unicode-range descriptor
font
font-family
font-feature-settings
font-kerning
font-language-override
font-optical-sizing
font-size
font-size-adjust
font-smooth
font-stretch
font-style
font-synthesis
font-variant
font-variant-alternates
font-variant-caps
font-variant-east-asian
font-variant-ligatures
font-variant-numeric
font-variant-position
font-variation-settings
font-weight
line-height
line-height-step