CSS3 文本效果


CSS 文本溢出、整字换行、换行规则以及书写模式

在本章中,您将学习如下属性:

  • text-overflow
  • word-wrap
  • word-break
  • writing-mode

CSS 文字溢出

CSS text-overflow 属性规定应如何向用户呈现未显示的溢出内容。可以被裁剪:

这是一些无法容纳在框中的一长段文本。

也可以将其呈现为省略号(…):

这是一些无法容纳在框中的一长段文本。

CSS 代码如下:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. p.test1 {
  6. white-space: nowrap;
  7. width: 200px;
  8. border: 1px solid #000000;
  9. overflow: hidden;
  10. text-overflow: clip;
  11. }
  12. p.test2 {
  13. white-space: nowrap;
  14. width: 200px;
  15. border: 1px solid #000000;
  16. overflow: hidden;
  17. text-overflow: ellipsis;
  18. }
  19. </style>
  20. </head>
  21. <body>
  22. <h1>text-overflow 属性</h1>
  23. <p>以下两段包含不适合其框的长文本。</p>
  24. <h2>text-overflow: clip:</h2>
  25. <p class="test1">这是一些无法容纳在框中的一长段文本</p>
  26. <h2>text-overflow: ellipsis:</h2>
  27. <p class="test2">这是一些无法容纳在框中的一长段文本</p>
  28. </body>
  29. </html>

下面的例子展示了将鼠标悬停在元素上时如何显示溢出的内容:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. div.test {
  6. white-space: nowrap;
  7. width: 200px;
  8. overflow: hidden;
  9. border: 1px solid #000000;
  10. }
  11. div.test:hover {
  12. overflow: visible;
  13. }
  14. </style>
  15. </head>
  16. <body>
  17. <p>请把鼠标移动到下面的 div 上,来查看完整文本。</p>
  18. <div class="test" style="text-overflow:ellipsis;">这是一些无法容纳在框中的一长段文本</div>
  19. <br>
  20. <div class="test" style="text-overflow:clip;">这是一些无法容纳在框中的一长段文本</div>
  21. </body>
  22. </html>

CSS 字换行(Word Wrapping)

CSS word-wrap 属性使长文字能够被折断并换到下一行。

如果一个单词太长而无法容纳在一个区域内,它会向外扩展:

这一段包含一个很长的单词:thisisaveryveryverylongword。这个长单词将被打断并换行到下一行。

通过 word-wrap 属性,您可以强制对文本进行换行 - 即使这意味着在词中间将其拆分:

这一段包含一个很长的单词:thisisaveryveryverylongword。这个长单词将被打断并换行到下一行。

CSS 代码如下:

允许长单词被打断并换行到下一行:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. p.test {
  6. width: 11em;
  7. border: 1px solid #000000;
  8. word-wrap: break-word;
  9. }
  10. </style>
  11. </head>
  12. <body>
  13. <h1>word-wrap 属性</h1>
  14. <p class="test">这一段包含一个很长的单词:thisisaveryveryverylongword。这个长单词将被打断并换行到下一行。</p>
  15. </body>
  16. </html>

CSS 换行规则

CSS word-break 属性指定换行规则。

本段包含一些文本。此行将连-字-符换行。

本段包含一些文本。这些行将在任何字符处换行。

CSS 代码如下:
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. p.test1 {
  6. width: 140px;
  7. border: 1px solid #000000;
  8. word-break: keep-all;
  9. }
  10. p.test2 {
  11. width: 140px;
  12. border: 1px solid #000000;
  13. word-break: break-all;
  14. }
  15. </style>
  16. </head>
  17. <body>
  18. <h1>word-break 属性</h1>
  19. <p class="test1">本段包含一些文本。此行将连-字-符换行。</p>
  20. <p class="test2">本段包含一些文本。这些行将在任何字符处换行。</p>
  21. <p><b>注释:</b>Opera 12 和更早版本不支持 word-break 属性。</p>
  22. </body>
  23. </html>

CSS 书写模式

CSS writing-mode 属性规定文本行是水平放置还是垂直放置。

这些文本中的span元素将是 垂直 书写模式.

下面的例子展示了一些不同的书写模式:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. p.test1 {
  6. writing-mode: horizontal-tb;
  7. }
  8. span.test2 {
  9. writing-mode: vertical-rl;
  10. }
  11. p.test2 {
  12. writing-mode: vertical-rl;
  13. }
  14. </style>
  15. </head>
  16. <body>
  17. <h1>writing-mode 属性</h1>
  18. <p class="test1">这些文本是默认的书写模式。</p>
  19. <p>这些文本中的span元素将是 <span class="writingmode1">垂直</span> 书写模式</p>
  20. <p class="test2">这些文本是垂直的书写模式。</p>
  21. </body>
  22. </html>

CSS 文本效果属性

下表列出了 CSS 文本效果属性:

属性描述
text-align-last指定如何对齐文本的最后一行。
text-justify指定对齐的文本应如何对齐和间隔。
text-overflow指定应如何向用户呈现未显示的溢出内容。
word-break指定非 CJK 脚本的换行规则。
word-wrap允许长单词被打断并换到下一行。
writing-mode指定文本行是水平放置还是垂直放置。

分类导航