Skip to content

Tailwind CSS - 文本换行

用于控制元素内文本如何换行的工具类。这些类提供了现代解决方案,可防止出现不自然的断行,并创建更平衡、更具美感的文本块。

Tailwind 提供了一组基于 CSS text-wrap 属性的类,用于管理文本流。这些类对于响应式排版(responsive typography)尤其强大。

类名CSS 属性描述
text-wraptext-wrap: wrap;允许文本正常换行(默认浏览器行为)。
text-nowraptext-wrap: nowrap;防止文本换行,必要时会导致其溢出容器。
text-balancetext-wrap: balance;平衡多行文本的长度,使其大致相等。最适合标题。
text-prettytext-wrap: pretty;通过防止单个单词(“孤行”)出现在最后一行来改善排版。

理解这些工具类的最佳方式是亲身体验它们。下面的示例演示了每个类对文本块的应用,突出了它们在布局和可读性上的不同效果。

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Text Wrap Comparison</title>
<!-- 为便于演示,我们使用了 Tailwind Play CDN。在实际项目中,请通过构建步骤来设置 Tailwind CSS。 -->
<script src="https://cdn.tailwindcss.com"></script>
</head>
<body class="bg-white p-4 sm:p-8 antialiased">
<div class="max-w-6xl mx-auto">
<h1 class="text-3xl font-bold text-center text-slate-900 mb-8">Text Wrap Utilities</h1>
<div class="grid md:grid-cols-2 lg:grid-cols-4 gap-6">
<!-- 文本换行 -->
<div class="bg-slate-100 p-4 rounded-lg">
<h2 class="font-mono text-slate-700 mb-2">text-wrap</h2>
<p class="text-wrap w-48 text-slate-600">
This is standard text wrapping. Lines break wherever they need to, which can sometimes lead to uneven line lengths.
</p>
</div>
<!-- 文本不换行 -->
<div class="bg-slate-100 p-4 rounded-lg overflow-x-auto">
<h2 class="font-mono text-slate-700 mb-2">text-nowrap</h2>
<p class="text-nowrap w-48 text-slate-600">
This text will never wrap to a new line, and will instead overflow its container horizontally.
</p>
</div>
<!-- 文本平衡 -->
<div class="bg-slate-100 p-4 rounded-lg">
<h2 class="font-mono text-slate-700 mb-2">text-balance</h2>
<p class="text-balance w-48 text-slate-600">
This heading is balanced. Notice how the lines are made to be a more similar length for better visual flow. Great for titles.
</p>
</div>
<!-- 文本美化 -->
<div class="bg-slate-100 p-4 rounded-lg">
<h2 class="font-mono text-slate-700 mb-2">text-pretty</h2>
<p class="text-pretty w-48 text-slate-600">
This paragraph uses text-pretty to avoid leaving a single word on the final line, like the word 'typography'.
</p>
</div>
</div>
</div>
</body>
</html>

text-balance 和 text-pretty 是现代 CSS 特性。尽管主流浏览器对它们的支持正在增长,但尚未普及。请务必在你的目标浏览器上进行测试。对于不支持的浏览器,文本将回退到默认的 text-wrap 行为,因此它们可以优雅降级。

浏览器需要执行计算来平衡或美化文本。因此:

  • text-balance 主要用于标题、副标题和其他短文本块(通常少于 10 行)。将其应用于大段落可能会影响性能。
  • text-pretty 用于需要良好排版的正文。它通常比 text-balance 的性能开销小,但仍应谨慎使用。

text-nowrap 在 UI 组件中非常有用,例如按钮、标签或表格单元格中,如果内容应保持在单行显示,不希望发生换行。