如何防止长单词打断我的 div?
有时,开发者需要在网页上显示长单词。例如,显示 URL、长文件名等。有时,单词长度大于父容器的长度,单词会打断容器。
例如,我们创建了卡片来显示文件详细信息,并且文件名很长,这可能会打断卡片,这看起来总是很糟糕。因此,开发者需要通过换行来防止长单词打断 div 元素。
在我们开始了解解决方案之前,让我们通过示例来理解问题。
示例 1(长单词打断 div)
在下面的示例中,我们创建了 div 元素并在 div 元素内部添加了 'p' 元素。此外,我们在 'p' 元素的文本中添加了长单词。
在 CSS 中,我们设置了 div 元素的固定尺寸。在输出中,用户可以观察到长单词是如何打断 div 元素并溢出 div 元素的。
<html> <head> <style> .container { width: 300px; border: 1px solid #ccc; padding: 10px; font-size: 1.5rem; } </style> </head> <body> <h2> Long words breaking the div in HTML5 </h2> <div class = "container"> <p class = "long-word"> This is a longwordthatshouldnotbreakinsideadiv. </p> </div> </body> </html>
使用 Word-break CSS 属性来打断单词
在这种方法中,我们将使用 'word-break' CSS 属性来防止单词打断 div 元素。'word-break' 属性允许我们决定当单词超出其容器宽度时应如何打断单词。
它采用不同的值来打断单词。'normal' 值仅在指定的断点(如空格、连字符等)处打断单词。'break-all' 值从任何溢出的字符处打断单词,而 'keep-all' 值永远不会打断单词。
这里,我们将使用 'break-all' 值从任何字符处打断单词。
语法
用户可以按照以下语法使用 'word-break' CSS 属性来防止长单词打断 div 元素。
word-break: break-all;
示例 2(防止长单词打断 div)
在下面的示例中,我们在容器 div 元素中添加了长单词,我们在第一个示例中添加了该元素。在 CSS 中,我们使用了 'word-break' 属性和 'break-all' 值来防止单词打断 div 元素。
在输出中,我们可以观察到单词从特定字符处打断,并在下一行显示单词的其余字符。
<html> <head> <style> .container { width: 300px; border: 1px solid #ccc; padding: 10px; font-size: 1.5rem; } .long-word { word-break: break-all; } </style> </head> <body> <h2> Preventing the long words breaking the div in HTML5 </h2> <div class = "container"> <p class = "long-word"> This is a longwordthatshouldnotbreakinsideadiv.</p> </div> </body> </html>
使用 Overflow-wrap 属性
‘overflow-wrap’ 属性允许我们决定如果元素的内容溢出父元素,则应如何换行。我们可以对 'overflow-wrap' 属性使用 'break-word' 值,通过换行来防止长单词打断 div 元素。
语法
用户可以按照以下语法使用 'overflow-wrap' CSS 属性来换行长单词。
overflow-wrap: break-word;
示例 3
在下面的示例中,我们将很长的单词添加为 'p' 元素的文本。之后,我们使用 'overflow-wrap' 属性和父元素,通过打断单词,将溢出的内容换到下一行。
在输出中,我们可以看到单词从中间被打断,并在下一行显示剩余的字符。
<html> <head> <style> .container { width: 300px; border: 1px solid #ccc; padding: 10px; overflow-wrap: break-word; } </style> </head> <body> <h3> Preventing the long words breaking the div in HTML5 using the overflow-wrap property </h3> <div class = "container"> <p class = "long-word"> Thisisaverylongwordthatshouldnotbreakinsideadiv. </p> </div> </body> </html>
示例 4(使用 JavaScript 设置 Overflow-wrap 属性)
有时,我们需要使用 JavaScript 来防止长单词打断 div。例如,我们从数据库获取产品数据,如果产品名称很长,我们可以对特定产品使用 'overflow-wrap' 属性来换行长产品名称。
在 JavaScript 中,我们可以访问 HTML 元素并使用 style 对象的 'overflowWrap' 属性来防止长单词打断 div 元素。
<html> <head> <style> .container { width: 300px; border: 1px solid #ccc; padding: 10px; } </style> </head> <body> <h3> Preventing the long words breaking the div in HTML5 using the <i>overflow-wrap</i> property </h2> <div class = "container"> <p class = "long-word"> Thisisaverylongwordthatshouldnotbreakinsideadiv. </p> </div> <script> let longWord = document.querySelector('.long-word'); longWord.style.overflowWrap = 'break-word'; </script> </body> </html>
用户学习了如何使用不同的 CSS 属性来防止长单词打断 div 元素。在第一种方法中,我们使用了 'word-break' CSS 属性,指定浏览器如何打断单词。在第二种方法中,我们使用了 'overflow-wrap' CSS 属性,它指定了我们如何处理 div 元素内容的溢出。