한 단어로 설명하려면 글꼴 변형이라고 부를 수 있습니다. 해당 CSS 속성은 합자, 대문자, 숫자 및 대체를 포함하는 font-variation-*
속성입니다. 글리프. 이러한 속성을 사용하면 웹에서 보다 정확하고 아름다운 타이포그래피(텍스트) 효과를 만들 수 있습니다. font-variation-*
属性,其包括连接(ligatures)、大写(caps)、数字(numerals)和替代字形(alternate glyphs)。这些属性可以让我们在Web上创建更精准、更漂亮的排版(文本)效果。
事实上,Web上的排版总是要落后于它在它印刷中的效果。但这是可以理解的,因为打印在页面上的字体已经经过几个世纪的发展,可以说发展到一个复杂的程度。而在浏览器要达到这样的一个层次,还是很难的。
但是,由于Web字体中OpenType功有的增加,以及CSS特性的完善与能力的提高,Web上排版和印刷上排版之间的差距在逐渐拉小。
那么今天这篇文章,借助前面的示例,我们来看看如何使用CSS控制OpenType特性,但请记住,你所使用的任何Web字体需要支持这些特性。
font-variant-*
属性
在CSS中可以通过font-variant-*
属性来控制大多数OpenType特性。也可以使用font-feature-settings
用来支持低版本浏览器。然而,只要可能,你应该使用更现代的font-variant-*
属性。在实际使用的时候,可以使用@supports
规则来对font-variant-*
做降级处理,对于支持的浏览器使用该属性,不支持的浏览器使用font-feature-settings
。
body { font-feature-settings: "liga" 1;}@supports (font-variant-ligatures: common-ligatures) { body { font-feature-settings: normal; font-variant-ligatures: common-ligatures; }}
可能到现在为止,你和我一样,都还不太明白上面的代码究竟起了什么作用。别担心,继续往后阅读,你会整明白的。
font-variant-*
主要包括:
font-variant-ligatures
font-variant-caps
font-variant-numeric
font-variant-alternates
font-variant-east-asian
后面的内容简单的来看看这些属性。
font-variant-ligatures
连接是由两个或两个以上的字答组成的单个字形。它们通常能防止难看或尴尬的字母碰撞。主要是功能是有助于辨认。
font-variant-ligatures
可以用以下关键词做为其属性值:
/* Keyword values */ font-variant-ligatures: normal; font-variant-ligatures: none; font-variant-ligatures: common-ligatures; /* <common-lig-values> */ font-variant-ligatures: no-common-ligatures; /* <common-lig-values> */ font-variant-ligatures: discretionary-ligatures; /* <discretionary-lig-values> */ font-variant-ligatures: no-discretionary-ligatures; /* <discretionary-lig-values> */ font-variant-ligatures: historical-ligatures; /* <historical-lig-values> */ font-variant-ligatures: no-historical-ligatures; /* <historical-lig-values> */ font-variant-ligatures: contextual; /* <contextual-alt-values> */ font-variant-ligatures: no-contextual; /* <contextual-alt-values> */ font-variant-ligatures: contextual; /* <no-historical-ligatures> <common-ligatures> */ /* Global values */ font-variant-ligatures: inherit; font-variant-ligatures: initial; font-variant-ligatures: unset;
common-ligatures
这些连接是设计者决定在正常情况下使用的连接。在大多数情况下,应该使用这些,因为大数浏览器都默认启用它们。
最常见的连接值是fi
、ffi
、th
或者类似的。它们对应的OpenType值为liga
和clig
。两个值都是有可能的:
common-ligatures
:激活连接no-common-ligatures
:禁用连接
比如:
font-variant-ligatures: common-ligatures; /* 开启 */font-variant-ligatures: no-common-ligatures; /* 禁用 */font-feature-settings: 'liga' 1; /* 低版本浏览器 开启 */font-feature-settings: 'liga' 0; /* 低版本浏览器 禁用 */
效果如下:
上一行开启连接,下一行禁用连接的效果
discretionary-ligatures
这些可以用于印刷方面的连接,可以达到特殊效果。这些默认是禁用的。也可以理解为,这些值可以用来控制特定的连接,指定的字体并由OpenType设计器来定义。它们对应的是OpenType值dig
。它也有两个可能的值:
discretionary-ligatures
:激活连接no-discretionary-ligatures
:禁用连接
如果你的代码中设置了:
font-variant-ligatures: discretionary-ligatures; /* 激活 */font-variant-ligatures: no-discretionary-ligatures; /* 禁用 */font-feature-settings: 'dlig' 1; /* 低版本浏览器 激活 */font-feature-settings: 'dlig' 0; /* 低版本浏览器 禁用 */
效果如下:
第一行开启连接,第二行禁用连接
contextual
这些值控制字母是否适应它们的上下文。也就是说,它们是否适应周围的字母。这些值对应于OpenType中的calt
。同样的contextual
表示启用;no-contextual
表示禁用。
font-variant-ligatures: contextual; /* enable */font-variant-ligatures: no-contextual; /* disable */font-feature-settings: 'calt' 1; /* low-level enable */font-feature-settings: 'calt' 0; /* low-level disable */historical-ligatures
使用这些值,看上去就像德文中的tz
显示成ß
。它对应的OpenType值是hlig
。historical-ligatures
环开启,而no-historical-ligatures
禁用。
font-variant-ligatures: historical-ligatures; /* enable */font-variant-ligatures: no-historical-ligatures; /* disable */font-feature-settings: 'hlig' 1; /* low-level enable */font-feature-settings: 'hlig' 0; /* low-level disable */
font-variant-position
我们经常使用了sub
和sup
元素的来改为字符在垂直方向的位置。默认情况下,浏览器会使用一个常规的数字字符,使font-size
更小,并使用vertical-align
来提高或降低它。这些都不是真正的sub
和sup
,而且通常会显得很难看,更不用说它们会打乱line-height
。
值得庆幸的是,现在有一种方法可以使用font-variant-position
真正实现sub
和sup
font-variant-*
속성
🎜대부분의 OpenType 기능은 CSS의 font-variant-*
속성을 통해 제어할 수 있습니다. font-feature-settings
를 사용하여 낮은 버전의 브라우저를 지원할 수도 있습니다. 그러나 가능하다면 보다 현대적인 font-variant-*
속성을 사용해야 합니다. 실제 사용에서는 @supports
규칙을 사용하여 font-variant-*
를 다운그레이드할 수 있습니다. 지원되는 브라우저와 지원되지 않는 브라우저에 이 속성을 사용하세요. -설정. 🎜/* Keyword values */font-variant-position: normal; font-variant-position: sub; font-variant-position: super;/* Global values */font-variant-position: inherit; font-variant-position: initial; font-variant-position: unset;🎜아마도 지금까지 여러분은 저처럼 위 코드의 기능을 아직 잘 이해하지 못할 수도 있습니다. 걱정하지 마시고 계속 읽으시면 알게 될 것입니다. 🎜🎜
font-variant-*
주로 포함: 🎜- 🎜
font-variant-ligatures
🎜 - 🎜
글꼴 변형 대문자
🎜 - 🎜
글꼴 변형 숫자
🎜 - 🎜
글꼴 변형-대체
🎜 - 🎜
글꼴-변형-동아시아
🎜
font-variant-ligatures
🎜링크는 두 개 이상의 글리프로 구성된 단일 글리프입니다. 보기 흉하거나 어색한 글자 충돌을 방지하는 경우가 많습니다. 주요 기능은 식별을 돕는 것입니다. 🎜🎜font-variant-ligatures
는 다음 키워드를 속성 값으로 사용할 수 있습니다: 🎜font-variant-position: sub; /* enable */font-variant-position: normal; /* disable both variants */font-feature-settings: 'subs' 1; /* low-level enable */font-feature-settings: 'subs' 0; /* low-level disable */
common-ligatures
🎜이러한 연결은 디자이너가 무엇인지 결정합니다. 정상적인 상황에서 사용하기 위한 연결입니다. 대부분의 브라우저에서는 기본적으로 이를 활성화하므로 대부분의 경우 이를 사용해야 합니다. 🎜🎜가장 일반적인 연결 값은 fi
, ffi
, th
또는 이와 유사한 것입니다. 해당 OpenType 값은 liga
및 clig
입니다. 두 값 모두 가능합니다: 🎜- 🎜
common-ligatures
: 연결 활성화 🎜 - 🎜
no -common-ligatures
: 연결 비활성화🎜
font-variant-position: super; /* enable */font-variant-position: normal; /* disable both variants */font-feature-settings: 'sups' 1; /* low-level enable */font-feature-settings: 'sups' 0; /* low-level disable */🎜효과는 다음과 같습니다.🎜🎜이전 줄에서 연결을 활성화하고 비활성화하는 효과 다음 줄의 연결🎜
discretionary-ligatures
🎜특수 효과를 얻기 위해 연결을 인쇄하는 데 사용할 수 있습니다. 이는 기본적으로 비활성화되어 있습니다. 또한 이러한 값은 특정 연결, 특정 글꼴을 제어하고 OpenType 디자이너가 정의하는 데 사용될 수 있음을 이해할 수 있습니다. 이는 OpenType 값 dig
에 해당합니다. 또한 두 가지 가능한 값이 있습니다: 🎜- 🎜
discretionary-ligatures
: 연결 활성화 🎜 - 🎜
no-discretionary-ligatures
: 연결 비활성화 🎜
/* Keyword values */font-variant-caps: normal; font-variant-caps: small-caps; font-variant-caps: all-small-caps; font-variant-caps: petite-caps; font-variant-caps: all-petite-caps; font-variant-caps: unicase; font-variant-caps: titling-caps;/* Global values */font-variant-caps: inherit; font-variant-caps: initial; font-variant-caps: unset;🎜효과는 다음과 같습니다: 🎜🎜첫 번째 줄은 연결을 열고, 두 번째 줄 연결 비활성화🎜
문맥
🎜이 값은 문자가 문맥에 적응하는지 여부를 제어합니다. 즉, 주변의 글자와 잘 어울리는지 여부입니다. 이 값은 OpenType의 calt
에 해당합니다. 마찬가지로 contextual
은 활성화됨을 의미하고, no-contextual
은 비활성화됨을 의미합니다. 🎜font-variant-caps: small-caps; /* enable */font-variant-caps: normal; /* disable all variants */font-feature-settings: 'smcp' 1; /* low-level enable */font-feature-settings: 'smcp' 0; /* low-level disable */🎜이 값을 사용하면 독일어로
tz
가 ß
로 나타나는 것처럼 보입니다. 해당 OpenType 값은 hlig
입니다. historical-ligatures
링은 활성화되고 no-historical-ligatures
링은 비활성화됩니다. 🎜font-variant-caps: all-small-caps; /* enable */font-variant-caps: normal; /* disable all variants */font-feature-settings: 'smcp' 1, 'c2sc' 1; /* low-level enable */font-feature-settings: 'smcp' 1, 'c2sc' 0; /* low-level disable */
font-variant-position
🎜문자를 세로 방향으로 변경하기 위해 sub
및 sup
요소를 자주 사용합니다. 위치. 기본적으로 브라우저는 일반 숫자 문자를 사용하여 글꼴 크기
를 작게 만들고 세로 정렬
을 사용하여 높이거나 낮춥니다. 이는 실제로 sub
및 sup
가 아니며 줄 높이
를 엉망으로 만드는 것은 물론 보기에도 좋지 않습니다. 🎜🎜다행히 이제 font-variant-position
을 사용하여 sub
및 sup
와 같은 효과를 실제로 얻을 수 있는 방법이 있습니다. 그러나 이 속성은 현재 Firefox에서만 지원됩니다. 🎜/* Keyword values */font-variant-position: normal; font-variant-position: sub; font-variant-position: super;/* Global values */font-variant-position: inherit; font-variant-position: initial; font-variant-position: unset;
sub
实现类似于<sub></sub>
标签的下标字符效果:
font-variant-position: sub; /* enable */font-variant-position: normal; /* disable both variants */font-feature-settings: 'subs' 1; /* low-level enable */font-feature-settings: 'subs' 0; /* low-level disable */
super
实现类似于<sup></sup>
标签的上标字符效果:
font-variant-position: super; /* enable */font-variant-position: normal; /* disable both variants */font-feature-settings: 'sups' 1; /* low-level enable */font-feature-settings: 'sups' 0; /* low-level disable */
font-variant-caps
font-variant-caps
属性用来控制字母大写。只不过这里启用的是小型大写。
/* Keyword values */font-variant-caps: normal; font-variant-caps: small-caps; font-variant-caps: all-small-caps; font-variant-caps: petite-caps; font-variant-caps: all-petite-caps; font-variant-caps: unicase; font-variant-caps: titling-caps;/* Global values */font-variant-caps: inherit; font-variant-caps: initial; font-variant-caps: unset;
small-caps
小型大写字母的设计与小写字母相同,用于在运行文本中大写字母。它们使段落更具内聚力和可读性。
font-variant-caps: small-caps; /* enable */font-variant-caps: normal; /* disable all variants */font-feature-settings: 'smcp' 1; /* low-level enable */font-feature-settings: 'smcp' 0; /* low-level disable */
all-small-caps
small-caps
只是替换了小写字母为大写字母。要是想将所有字母都变成小的大写字母,需要使用all-small-caps
。
font-variant-caps: all-small-caps; /* enable */font-variant-caps: normal; /* disable all variants */font-feature-settings: 'smcp' 1, 'c2sc' 1; /* low-level enable */font-feature-settings: 'smcp' 1, 'c2sc' 0; /* low-level disable */
petite-caps
标准的小型大写字母通常会比字体的x
高度略大一些。一些字体有额外的小型大写,与x
高度匹配。这些被称为petite-caps
。
font-variant-caps: petite-caps; /* enable */font-variant-caps: normal; /* disable all variants */font-feature-settings: 'pcap' 1; /* low-level enable */font-feature-settings: 'pcap' 0; /* low-level disable */
all-petite-caps
与all-small-caps
类似,它将所有字母包括小写字母和大写字母,都转换成小型大写字母,而且和字体的x
字母高度相匹配。
font-variant-caps: all-petite-caps; /* enable */font-variant-caps: normal; /* disable all variants */font-feature-settings: 'pcap' 1, 'c2pc' 1; /* low-level enable */font-feature-settings: 'pcap' 1, 'c2pc' 0; /* low-level disable */
unicase
该功能将大写和小写字母映射到混合的小写字母和小写的大型字母,创建一个单一case
的字母表。有时这些小写字母是实际的小型大写字母,有时它们是特别设计的unicase
形式。这个特性的实现从字体到字体各不相同。
font-variant-caps: unicase; /* enable */font-variant-caps: normal; /* disable all variants */font-feature-settings: 'unic' 1; /* low-level enable */font-feature-settings: 'unic' 0; /* low-level disable */
titling-caps
标准的大写字母设计是用来与小写字母一起使用的,当它们被用在所有大写字母的字符串时,它们会显得过于大一点。有些字体还特别适合这种情况。
font-variant-caps: titling-caps; /* enable */font-variant-caps: normal; /* disable all variants */font-feature-settings: 'titl' 1; /* low-level enable */font-feature-settings: 'titl' 0; /* low-level disable */
font-variant-numeric
font-variant-numeric
属性用来控制对数字、分数和序号标记的处理。数字的正确显示取决于上下文的不同,以下是一些一般性的规则:
运行于文本正文中的数字,使用比例的是旧式数字
运行在标题中的数字,使用的比例是内联数字
在数字表格中的数字,使用的比例是表格内联数字
常用的属性:
font-variant-numeric: normal;font-variant-numeric: ordinal;font-variant-numeric: slashed-zero;font-variant-numeric: lining-nums; /* <numeric-figure-values> */font-variant-numeric: oldstyle-nums; /* <numeric-figure-values> */font-variant-numeric: proportional-nums; /* <numeric-spacing-values> */font-variant-numeric: tabular-nums; /* <numeric-spacing-values> */font-variant-numeric: diagonal-fractions; /* <numeric-fraction-values> */font-variant-numeric: stacked-fractions; /* <numeric-fraction-values> */font-variant-numeric: oldstyle-nums stacked-fractions;/* Global values */font-variant-numeric: inherit; font-variant-numeric: initial; font-variant-numeric: unset;
lining-nums
lining-nums
里的数字近似大写字母,高度一致。它们应该用于标题或表格中的数字。通常情况下,数字是默认的。
font-variant-numeric: lining-nums; /* enable */font-variant-numeric: normal; /* disable all variants */font-feature-settings: 'lnum' 1; /* low-level enable */font-feature-settings: 'lnum' 0; /* low-level disable */
oldstyle-nums
旧式数字(Old-style)有不同的高度和对齐方式,因此更类似于小写字母。它们应该用于正文文本中。
font-variant-numeric: oldstyle-nums; /* enable */font-variant-numeric: normal; /* disable all variants */font-feature-settings: 'onum' 1; /* low-level enable */font-feature-settings: 'onum' 0; /* low-level disable */
proportional-nums
比例(Proportional)数字具有可变的间距,并与水平文本相融合。它们应该在大多数情况下使用,除了数据表格中。其中垂直对齐很重要。通常数字在默认情况下是比例数字。
font-variant-numeric: proportional-nums; /* enable */font-variant-numeric: normal; /* disable all variants */font-feature-settings: 'pnum' 1; /* low-level enable */font-feature-settings: 'pnum' 0; /* low-level disable */
tabular-nums
表格数字具有相同的宽度,应该在数据表格中使用,以允许数字垂直对齐。
font-variant-numeric: tabular-nums; /* enable */font-variant-numeric: normal; /* disable all variants */font-feature-settings: 'tnum' 1; /* low-level enable */font-feature-settings: 'tnum' 0; /* low-level disable */
diagonal-fractions
默认情况下,分数将以小写字母的形式显示。适当的分数将被格式化,以匹配一个衬里图形的高度,可以是对象线或堆叠。
font-variant-numeric: diagonal-fractions; /* enable */font-variant-numeric: normal; /* disable all variants */font-feature-settings: 'frac' 1; /* low-level enable */font-feature-settings: 'frac' 0; /* low-level disable */
stacked-fractions
在大多数Web字体中,堆叠分数并不像对角线分数那样普遍,但它应该被证明是有用的。这在大量的科学或数学中用得多。
font-variant-numeric: stacked-fractions; /* enable */font-variant-numeric: normal; /* disable all variants */font-feature-settings: 'afrc' 1; /* low-level enable */font-feature-settings: 'afrc' 0; /* low-level disable */
ordinal
Ordinal像st
、nd
、rd
和th
这样的序号默认显示为标准小写字母。然而,理想情况下,这些数字会随着数字的增加而增加。序数值支持这一点。
font-variant-numeric: ordinal; /* enable */font-variant-numeric: normal; /* disable all variants */font-feature-settings: 'ordn' 1; /* low-level enable */font-feature-settings: 'ordn' 0; /* low-level disable */
slashed-zero
可以使用斜线来替换零字符。
font-variant-numeric: slashed-zero; /* enable */font-variant-numeric: normal; /* disable all variants */font-feature-settings: 'zero' 1; /* low-level enable */font-feature-settings: 'zero' 0; /* low-level disable */
font-variant-alternates
字体可以为任何字符提供多种替换。font-variant-alternates
属性提供了许多控制字符替换的方法。
/* Keyword values */font-variant-alternates: normal; font-variant-alternates: historical-forms;/* Functional notation values */font-variant-alternates: stylistic(user-defined-ident); font-variant-alternates: styleset(user-defined-ident);font-variant-alternates: character-variant(user-defined-ident); font-variant-alternates: swash(user-defined-ident); font-variant-alternates: ornaments(user-defined-ident); font-variant-alternates: annotation(user-defined-ident); font-variant-alternates: swash(ident1) annotation(ident2);/* Global values */font-variant-alternates: initial; font-variant-alternates: inherit; font-variant-alternates: unset;
historical-forms
被运用于周期表。请注意这与连接中的效果还是有不同之处。
font-variant-numeric: historical-forms; /* enable */font-variant-numeric: normal; /* disable all variants */font-feature-settings: 'hist' 1; /* low-level enable */font-feature-settings: 'hist' 0; /* low-level disable */
除此之外,根据不同的场景选择不同的属性值。
font-variation-settings
font-variation-settings
属性主要用于指定需要更改的特性,其主要有由个字母和它们的变化值组成。该属性提供了对OpenType或TrueType字体变体的在低浏览器的控制。
/* Use the default settings */font-variation-settings: normal;/* Set values for OpenType axis names */font-variation-settings: "XHGT" 0.7;/* Global values */font-variation-settings: inherit; font-variation-settings: initial; font-variation-settings: unset;
这就是在我们文章的开头的示例中看到的font-variation-settings: 'INLN' 0;
和font-variation-settings: 'INLN' 1000, 'SWRM' 1000;
等。每个值都有4个ASCII字符和一个表示axis值的数字组成。如果<string></string>
有更多或更少的字符或包含U+20至U+7E的codepoint范围之外的字符,那么整个属性都是无效的。而<number></number>
可以是分数,也可以是负数。
总结
撸了一圈font-variation-*
相关的属性,总算是了解了这个Demo的实现原理了。但要完全掌握这些知识,还是需要一定的时间的。必竟有很多知识点都和字体以及排版相关的。这需要具备一些印刷相关的知识,或许能帮助我们更好的掌握这些属性的特性,以及使用的场景。
另外,目前这些属性,浏览器能支持的为数不多,不过不要紧,感兴趣的可以玩玩,体验一下。或者自己把文章开头的示例修改一下下,说不定能达到另外的效果。
相关推荐:
위 내용은 CSS3 글꼴 변형에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

나는 다른 날이 질문을 받았다. 나의 첫 번째 생각은 : 이상한 질문입니다! 특이성은 선택기에 관한 것이며 At-Rules는 선택기가 아니므로 ... 무의미합니까?

그렇습니다. 당신은 할 수 있습니다. 그리고 그것은 실제로 어떤 순서로 중요하지 않습니다. CSS 전 처리기가 필요하지 않습니다. 일반 CSS에서 작동합니다.

CSS 및 JavaScript (및 이미지 및 글꼴 등)와 같은 자산에 멀리 떨어진 캐시 헤더를 설정해야합니다. 브라우저를 알려줍니다

많은 개발자들은 CSS 코드베이스를 유지하는 방법에 대해 글을 썼지 만 코드베이스의 품질을 어떻게 측정하는지에 대해 많은 글을 쓰지 않습니다. 물론, 우리는 가지고 있습니다

짧고 임의의 텍스트를 수락 해야하는 양식이 있습니까? 이름이나 다른 것 같습니다. 정확히 무엇을위한 것입니다. 많은 것이 있습니다

나는 프론트 컨퍼런스를 위해 스위스 취리히로 향하게되어 매우 기쁩니다 (그 이름과 URL을 사랑합니다!). 나는 전에 스위스에 가본 적이 없기 때문에 나는 흥분했다

소프트웨어 개발에서 제가 가장 좋아하는 개발 중 하나는 서버리스의 출현이었습니다. 세부 사항에 푹 빠지는 경향이있는 개발자로서

이 게시물에서는 들어오는 데이터를 위해 동적 경로를 만드는 방법을 보여주기 위해 NetLify에 구축하고 배포 한 전자 상거래 상점 데모를 사용합니다. 상당히입니다


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경
