掌握 `writing-mode`:实现垂直文本与混合排版

掌握 writing-mode:让你的文字站起来,跳支舞

各位看官,咱们今天聊点不一样的,聊聊CSS里一个有点冷门,但又酷炫到爆炸的属性:writing-mode。别一听技术术语就想跑,保证你读完之后,会觉得这玩意儿简直是排版界的变形金刚,能让你的文字站起来,跳支舞,甚至玩出你想象不到的花样。

想象一下,你在设计一个古风满满的网站,想模仿古书那种竖排文字的韵味,或者你想让你的侧边导航栏的文字像竹简一样垂直排列,再或者你想在页面上玩点文字创意,让文字不再循规蹈矩地横着走,这时候,writing-mode就能帮你实现这些骚操作。

啥是 writing-mode?它能干啥?

简单来说,writing-mode就是CSS里控制文字书写方向的属性。它定义了文本行是如何排列的,以及块级元素的流动方向。你可以把它想象成一个指挥棒,指挥着你的文字们排成什么样的队伍。

它主要有几个常用的取值,咱们一个个来扒一扒:

  • horizontal-tb (默认值): 这个是最常见的,就是我们平时用的横向书写模式,从左到右,从上到下,就像我们现在读的这篇文章一样。tb代表 top-to-bottom,也就是从上到下。

  • vertical-rl: 重点来了!这就是让文字站起来的关键。它会让文字垂直排列,从上到下,然后一行行从右往左排列。是不是有点像古时候的竖排书籍了?rl代表 right-to-left,也就是从右到左。

  • vertical-lr: 这个跟 vertical-rl 差不多,也是让文字垂直排列,从上到下,但是行的排列方向是从左往右。lr代表 left-to-right,也就是从左到右。

  • sideways-rl: 这个就更厉害了,它会让文字横向排列,但是整体旋转90度,从上到下排列,行从右往左。你可以想象一下,把一排横着的文字,像叠积木一样,从上往下堆起来。

  • sideways-lr:sideways-rl 类似,文字也是横向排列,整体旋转90度,从上到下排列,但是行的排列方向是从左往右。

光说不练假把式,来点实际的!

理论知识咱们有了,接下来就得动动手,看看这些属性到底怎么用。

假设我们想在侧边栏做一个垂直的导航菜单,我们可以这样写:

<div class="sidebar">
  <ul>
    <li><a href="#">首页</a></li>
    <li><a href="#">产品</a></li>
    <li><a href="#">关于我们</a></li>
    <li><a href="#">联系我们</a></li>
  </ul>
</div>
.sidebar {
  width: 50px;
  height: 300px;
  background-color: #f0f0f0;
}

.sidebar ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.sidebar li a {
  display: block;
  padding: 10px;
  text-decoration: none;
  color: #333;
  writing-mode: vertical-rl; /* 关键的一行! */
}

这段代码会让侧边栏里的导航文字垂直排列,从上到下,然后从右往左排列。怎么样,是不是瞬间感觉你的网站有点不一样了?

writing-mode 的进阶玩法:混合排版,玩转创意!

writing-mode 的强大之处,不仅仅在于它可以改变文字的排列方向,更在于它可以和其他CSS属性配合,实现各种各样的混合排版效果。

比如,你可以利用 writing-modetext-orientation 属性,控制文字的旋转角度。text-orientation 属性可以控制垂直方向上文字的显示方式,它可以让文字保持直立,也可以让文字顺时针旋转90度。

.vertical-text {
  writing-mode: vertical-rl;
  text-orientation: upright; /* 让文字保持直立 */
}

这段代码会让文字垂直排列,并且保持直立,而不是横着倒下来。

再比如,你可以利用 writing-modedirection 属性,控制文字的阅读方向。direction 属性可以控制文字的阅读方向,它可以让文字从左往右阅读,也可以让文字从右往左阅读。

.rtl-text {
  writing-mode: vertical-rl;
  direction: rtl; /* 让文字从右往左阅读 */
}

这段代码会让文字垂直排列,并且从右往左阅读,是不是有点像阿拉伯语或者希伯来语了?

writing-mode 的兼容性:别忘了照顾老朋友

虽然 writing-mode 很酷炫,但是也要注意它的兼容性。在一些比较老的浏览器上,writing-mode 可能无法正常显示。所以,在使用 writing-mode 的时候,最好加上一些兼容性前缀,比如 -webkit--moz-

.vertical-text {
  -webkit-writing-mode: vertical-rl; /* 兼容webkit内核的浏览器 */
  -moz-writing-mode: vertical-rl; /* 兼容firefox浏览器 */
  writing-mode: vertical-rl;
}

这样可以确保你的代码在各种浏览器上都能正常显示。

writing-mode 的应用场景:脑洞有多大,舞台就有多大

writing-mode 的应用场景非常广泛,只要你有足够的想象力,就能用它玩出各种各样的花样。

  • 古风网站:writing-mode 模拟古书的竖排文字,营造浓厚的文化氛围。

  • 侧边导航栏:writing-mode 让侧边导航栏的文字垂直排列,节省空间,提高视觉效果。

  • 创意排版:writing-mode 和其他CSS属性配合,实现各种各样的创意排版效果,让你的页面与众不同。

  • 数据可视化:writing-mode 制作垂直方向的图表,更直观地展示数据。

  • 艺术字设计:writing-mode 设计独特的艺术字,为你的设计作品增添亮点。

结语:让文字不再沉默,让排版充满活力

writing-mode 就像一个魔术师,它可以让你的文字不再沉默,让你的排版充满活力。只要你掌握了它的用法,就能在网页设计中玩出各种各样的花样,让你的网站脱颖而出。

所以,别再让你的文字们老老实实地横着走了,给它们一个机会,让它们站起来,跳支舞,让你的网页设计更加精彩!

最后,希望这篇文章能给你带来一些启发,让你对 writing-mode 有更深入的了解。记住,技术是死的,人是活的,只要你有足够的创意,就能用 writing-mode 创造出无限的可能!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注