CSS秘密花园: 连体字母_html/css_WEB-ITnose
《 CSS Secrets 》是 @Lea Verou 最新著作,这本书讲解了有关于CSS中一些小秘密。是一本CSSer值得一读的一本书,经过一段时间的阅读,我、@南北和@彦子一起将在W3cplus发布一系列相关的读后感,与大家一起分享。
和人一样,不是所有的字形放在一起的时候都可以显得很自然。例如,对于大多数衬线字体的 f 和 i 而言。字母 i 上边的小点经常和 f 中的横线重叠,使得它们的组合看起来非常笨拙。
为了解决这个问题,类型设计师经常会在他们的字体中添加额外的字符,称为连字符。这些都是单独设计的字形的二联体或三联体,用于排版方案中当对应的字符彼此相邻时。例如,如上图中的一些常见的连体字母,它们看起来比之前对应字符单独放在一起的时候好了很多。
还有一些所谓的自由连体字“discretionary ligatures”:
事实上,对于不起眼的 & 符号,我们都知道并且喜欢把它作为字母 e 和字母 t 的连写(“et”在拉丁文中表示“and”)。
它被设计成一个另类的风格,而不是因为它们的等价字符对相邻时出了问题。
但是,浏览器从来不会默认使用自由连体字(尽管这是正确的),并往往不会使用常见的连字体(这是一个bug)。事实上,直到最近,显式使用任何连写字的唯一方法就是使用它的等效Unicode字符——如, fi 表示 fi 连写。这种方法比解决问题带来了更大的麻烦:
- 很明显,它使得这些标签很难被阅读,也很难编写(能知道 define 是什么意思纯属运气)。
- 如果当前字体不包含这个连写字符,结果将是乱七八糟的(如下图所示)。
- 不是每个连写字都有一个等同的、标准的Unicode字符。例如, ct 连写字不对应任何的Unicode字符,所有包括它的字体都需要把它放置在Unicode PUA(私人使用区域)块中。
- 它会打破文本的可访问性,如复制/粘贴,搜索,和语音转换。很多应用都可以非常智能地处理这些,都不是所有都可以。它甚至可以打破一些浏览器的搜索。
所以,在这种时候,总需要一个更好的方法,对吧?
解决方案
在 CSS3 的中, font-variant 可以被转换成 shorthand ,包含了很多新的 longhand 属性。其中之一是 font-variant-ligatures ,特别为连写的开启和关闭而设计的。要打开所有可能的连写字,你需要使用三个标识符:
font-variant-ligatures: common-ligatures discretionary-ligatures historical-ligatures;
该属性是可继承的。你可能会发现自由连体字“discretionary ligatures”妨碍可读性,想要把它们关掉。在这种情况下,你可能希望只打开常用的连写字:
font-variant-ligatures: common-ligatures;
你甚至可以明确地把其它两种连写字关闭:
font-variant-ligatures: common-ligatures no-discretionary-ligatures no-historical-ligatures;
font-variant-ligatures 还接受 none 值,就是完全把连写字关闭。不要使用 none 值,除非你知道自己设置的是什么。要把 font-variant-ligatures 重置为初始值,你需要使用 normal ,而不是 none 。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

本文讨论了HTML< Progress>元素,其目的,样式和与< meter>元素。主要重点是使用< progress>为了完成任务和LT;仪表>对于stati

本文讨论了html< datalist>元素,通过提供自动完整建议,改善用户体验并减少错误来增强表格。Character计数:159

本文讨论了HTML< meter>元素,用于在一个范围内显示标量或分数值及其在Web开发中的常见应用。它区分了< meter>从< progress>和前

本文讨论了使用HTML5表单验证属性,例如必需的,图案,最小,最大和长度限制,以直接在浏览器中验证用户输入。

本文讨论了视口元标签,这对于移动设备上的响应式Web设计至关重要。它解释了如何正确使用确保最佳的内容缩放和用户交互,而滥用可能会导致设计和可访问性问题。

本文讨论了< iframe>将外部内容嵌入网页,其常见用途,安全风险以及诸如对象标签和API等替代方案的目的。

GiteePages静态网站部署失败:404错误排查与解决在使用Gitee...
