Maison >interface Web >Questions et réponses frontales >css empêche le texte de s'enrouler
Dans la conception et le développement de sites Web, nous devons généralement contrôler la mise en page et le style des éléments de page. L'un des problèmes les plus courants liés à la mise en page du texte est de savoir comment empêcher le retour à la ligne du texte. Cet article présentera quelques méthodes courantes en CSS pour vous aider à résoudre ce problème.
L'attribut white-space
détermine comment gérer l'espace blanc dans la zone de l'élément. Il a 5 valeurs facultatives : normal
, pre-wrap
, pre-line
. Leurs effets sont : 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
: valeur par défaut, fusionne les espaces en excès, le texte ne sera pas renvoyé à la ligne, le texte sera automatiquement renvoyé à la ligne s'il ne peut pas tenir sur une seule ligne ;nowrap
: Pas de retour à la ligne, ce qui équivaut à combiner les fonctionnalités de normal
et de pre
; pre : conservez l'espace blanc en excès, ne fusionnez pas et n'encapsulez pas. Si vous avez besoin d'envelopper, vous devez ajouter `<br>` manuellement ;
: conserver l'espace blanc en excès, ne pas fusionner, retour à la ligne automatique, si un retour à la ligne est requis, il sera automatiquement renvoyé à la ligne ; pré-ligne
: fusionner ; espace blanc en excès, et le texte sera automatiquement renvoyé à la ligne s'il ne peut pas tenir sur une seule ligne. white-space: nowrap
. div { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
white-space: pre
. div::after { content: "