Heim >Web-Frontend >Front-End-Fragen und Antworten >CSS verhindert das Umbrechen von Text
Beim Webdesign und der Webentwicklung müssen wir normalerweise das Layout und den Stil von Seitenelementen steuern. Eines der häufigsten Probleme beim Textlayout besteht darin, zu verhindern, dass Text umbrochen wird. In diesem Artikel werden einige gängige Methoden in CSS vorgestellt, die Ihnen bei der Lösung dieses Problems helfen.
Das white-space
-Attribut bestimmt, wie mit dem Leerraum im Elementfeld umgegangen wird. Es verfügt über 5 optionale Werte . : normal
, nowrap
, pre
, pre-wrap
, pre-line
. Ihre Auswirkungen sind: white-space
属性决定元素盒子中的空白如何处理,它有5个取值可选:normal
、nowrap
、pre
、pre-wrap
、pre-line
。它们的效果分别是:
normal
:默认值,合并多余空白,文字不换行,文字在一行上放不下就自动换行;nowrap
:不换行,这相当于把normal
和pre
的特性结合起来;pre
:保留多余空白、不合并、不换行,如果需要换行需要手动添加`pre-wrap
:保留多余空白、不合并、自动换行,如果出现需要换行的情况,则自动进行换行;pre-line
:合并多余空白,文字在一行上放不下就自动换行。因此,当我们需要让文字不自动换行时,可以使用white-space: nowrap
。
div { white-space: nowrap; }
当然,如果想要保留多余空白,也可以使用其他取值。例如,如果要使文字在一行上完整显示,可以使用white-space: pre
。
div { white-space: pre; }
在设置了white-space
属性之后,如果文本长度超过了盒子的宽度,则会进行自动换行。这时需要使用word-break
属性来控制文字的断行,它有3个取值可选:normal
、break-all
、keep-all
。它们的效果分别是:
normal
:默认值,按照标准的断词规则,在单词之间进行断行;break-all
:在单词之间进行断行,并且在英文单词内不考虑任何规则断行;keep-all
:在单词之间断行,但是英文单词内不断行。因此,可以通过将word-break
属性的取值设置为keep-all
,来让文字不进行自动换行。
div { white-space: nowrap; word-break: keep-all; }
在部分情况下,即使通过white-space
和word-break
属性设置了正确的文字排版方式,文本长度也可能超出了盒子的宽度。这时需要使用overflow
属性来控制文本的溢出效果。overflow
属性有4个取值可选:visible
、hidden
、scroll
、auto
。它们的效果分别是:
visible
:默认值,不做任何处理,允许内容超过盒子范围显示在盒子外部;hidden
:溢出部分隐藏,不可见;scroll
:显示滚动条,用户可以通过滚动条来查看超出部分;auto
:根据实际需要显示滚动条。如果想让文字在一行上显示,不自动换行,并且溢出部分隐藏,可以结合使用white-space
和overflow
属性。
div { white-space: nowrap; overflow: hidden; }
当使用overflow: hidden
属性隐藏文本溢出部分时,有可能会导致用户看不到完整的文本内容。这时可以使用text-overflow
属性来控制文本的溢出效果。text-overflow
属性有2个取值可选:clip
、ellipsis
。它们的效果分别是:
clip
:将文本截断,并隐藏超出部分,不添加省略符号;ellipsis
:将文本截断,并隐藏超出部分,添加省略符号(...
)。因此,可以通过将text-overflow
属性的取值设置为ellipsis
normal
: Standardwert, überschüssiges Leerzeichen zusammenführen, Text wird nicht umgebrochen, Text wird automatisch umgebrochen, wenn er nicht in eine Zeile passt;nowrap
: Kein Zeilenumbruch, was der Kombination der Funktionen von normal
und pre
entspricht; pre
: Überschüssigen Leerraum beibehalten, nicht zusammenführen und Zeilen nicht umbrechen. Wenn Sie Zeilen umbrechen müssen, müssen Sie „pre-line
: Überschüssiger Leerraum wird zusammengeführt und der Text wird automatisch umbrochen, wenn er nicht in eine Zeile passt. white-space: nowrap
verwenden. div { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
white-space: pre
verwenden. div::after { content: "