惊鸿一瞥 -- CSS属性 -- text-orientation

1,261 阅读3分钟

在绚丽多彩的CSS世界中,存在着众多的属性,它们象征了设计的无限可能性。不过,有一些小众属性通常会被忽视,尽管它们能变出一道熵取的光芒,解决特定的设计难题。本文要介绍的就是这样一种不常见但功能强大的CSS属性——text-orientation

text-orientation 属性

text-orientation 属性定义了当文本在垂直模式下排列时,字符应如何倾向。这个属性通常与writing-mode结合使用,以支持不同的书写系统,特别是在编排东亚脚本(如中文、日文、韩文)时。

面对的设计痛点

许多网站在全球化的进程中,需要对不同文化和书写系统提供支持。垂直文本的应用场合尤其多见于东亚语言的展示,为了达到视觉上的美观和语义上的正确,需要确保文字的方向和排列满足特定的语境要求。这种需求在早期版本的浏览器中难以实现,因为它们通常不支持各种复杂的文本方向,或者需要复杂的标记和脚本。

text-orientation 的优雅解决方案

利用text-orientation属性,可以控制字符垂直排列时的朝向。该属性支持以下值:

  • mixed : 默认值。允许文字自动按照其语言特定的方式旋转。
  • upright : 强制所有字符都保持垂直方向的“直立”状态。
  • sideways : 强制所有字符都侧面倒下。

这一属性的存在,极大地简化了垂直文本排列的实现过程,提供了直接的CSS解决方案,无需过多的手动调整,即可实现精确的文本方向控制。

具体使用示例

假设打算为一个网站制作一个垂直导航栏,来展示一组东亚书籍分类。导航栏需以垂直格式排布,有效地展示每个类别的名称,遵循特定的文本方向规则。

以下是适用于该方案的HTML和CSS代码:

HTML 结构:

<nav class="vertical-navigation">
  <ul>
    <li>文学 Literature</li>
    <li>歷史 History</li>
    <li>科学 Science</li>
    <li>漫画 Comics</li>
  </ul>
</nav>

CSS 样式:

.vertical-navigation {
  writing-mode: vertical-rl;
  text-orientation: upright;
  width: 100px;
  background-color: #f5f5f5;
}

.vertical-navigation ul {
  list-style-type: none;
  padding: 0;
  margin: 0;
}

.vertical-navigation li {
  margin: 10px;
  font-size: 18px;
  font-weight: bold;
}

在这个例子中,writing-mode属性设置为vertical-rl,意味着文本从右边开始,排列到左边。而text-orientation属性设置为upright,每个字符直立显示,即使在垂直排版环境下,字符也不会进行任何旋转,符合东亚书籍分类的表达习惯。

结语

text-orientation提供了一种优雅且简单的方式去实现东亚文字的垂直排版,不仅增强了设计的表达力,而且更加忠实于传统的书写习惯。开拓者应该时刻寻找那些隐藏在细节之中的创新点,text-orientation正是这样一个属性。如同CSS中的其他小众属性一样,它含蓄地居于规范书之页,待有心之人发掘其价值,以释放其潜能。