如何防止长单词破坏我的div
发布时间:2023-10-07

    有时,开发人员需要在网页上显示长单词。例如,显示 URL、长文件名等。有时,单词长度大于父容器的长度,单词会破坏容器。

    例如,我们创建了卡片来显示文件详细信息,而文件名很长,这可能会破坏卡片,这样看起来总是更糟糕。因此,开发者需要通过换行来防止长单词破坏div元素。

    在开始解决方案之前,让我们通过示例来了解问题。

    示例 1(长单词分解 div)
    在下面的示例中,我们创建了 div 元素并在 div 元素内添加了“p”元素。此外,我们还在“p”元素的文本中添加了长单词。

    在 CSS 中,我们设置了 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 元素并使用样式对象的“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 元素内容的溢出。