Primer CSS 截断自定义最大宽度

cssweb developmentfront end technology更新于 2024/5/12 12:28:17

在 Web 开发项目中,由于客户需求、整体外观、资源有限等原因,开发人员经常需要将文本显示在指定的空间内。truncate 属性是 CSS 中一个有效的功能,可以解决此问题。

它允许开发人员显示单行文本,并使用省略号截断溢出的文本。但是,根据具体情况,可能需要自定义截断文本的最大宽度。在本文中,我们将讨论如何使用 Primer CSS(由 GitHub 设计系统设计的流行开源 CSS 框架)自定义最大宽度。

截断是什么意思?

在 Web 设计中,truncate 是 CSS 的 text-overflow 属性的值之一。在处理文本时,经常会遇到容器容量不足以容纳文本的情况。这种情况称为溢出文本。它允许我们显示一行文本,然后用省略号截断剩余部分。

在 CSS 中,要使用"truncate",您需要执行以下步骤 -

  • 将"white-space"属性设置为nowrap

  • 将overflow属性设置为hidden

  • 将text-overflow属性设置为ellipsis

示例

<html>
<head>
   <style>
      div {
         width: 77%;
         height: 30px;
         border: 1px solid black;
         overflow: hidden;
         white-space: nowrap;
         text-overflow: ellipsis;
      }      
   </style>
</head>  
<body> 
   <div> This is the text. Apple mango banana watermelon orange kiwi pomegranate muskmelon pineapple grapes papaya guava strawberries raspberry avocado pear. </div>
</body> 
</html>

为了避免写太多代码,您可以使用 Primer CSS。Primer CSS 内置了截断组件,并预定义了相应的类。

在使用 Primer CSS 中的任何类之前,必须先通过 npm 安装它 -

npm install --save @primer/css

或者在 HTML 代码中使用 CDN 链接 -

<link href= "https://unpkg.com/@primer/css@^20.2.4/dist/primer.css" rel= "stylesheet" />

自定义截断文本的最大宽度

为了自定义截断文本的最大宽度,Primer CSS 提供了预定义的类,用于截断网站中的溢出文本。

示例

在此示例中,我们使用预定义的 box 类将 div 元素转换为可调整大小的框。其中,p-1 是类的简写,表示在框的所有边上添加 4px(0.25 rem)的填充。

接下来,我们使用 style 属性为框添加所需的样式。我们将 resize 属性的值设置为 horizo​​ntal,以便用户只需从右上角拖动即可水平调整框的大小。为了向元素添加水平滚动条,我们使用了 "overflow: scroll" 属性。使用水平滚动条将使用户在水平滚动文本时能够看到隐藏的内容。

然后,我们使用 Primer CSS 中的预定义类显示了具有不同最大宽度的不同截断文本。

<html>
<head>
   <link rel="stylesheet" href="https://unpkg.com/@primer/css@^20.2.4/dist/primer.css" />
</head>
<body>
   <h1 style="margin: 10px"> Primer CSS Truncate Custom Max Width </h1>
   <p style="margin: 10px"> Following we have different truncated text with customized maximum widths. </p>
   <br>
   <div class="Box p-1" style="resize: horizontal; overflow: scroll; margin: 10px">
      <div class="Truncate">
         <span class="Truncate-text Truncate-text--expandable" style="max-width: 460px;"> This is the text. Apple mango banana watermelon orange kiwi pomegranate muskmelon pineapple grapes papaya guava strawberries raspberry avocado pear. </span>
      </div>
      <br>
      <div class="Truncate">
         <span class="Truncate-text Truncate-text--expandable" style="max-width: 340px;"> This is the text. Apple mango banana watermelon orange kiwi pomegranate muskmelon pineapple grapes papaya guava strawberries raspberry avocado pear. </span>
      </div>
      <br>
      <div class="Truncate">
         <span class="Truncate-text Truncate-text--expandable" style="max-width: 280px;"> This is the text. Apple mango banana watermelon orange kiwi pomegranate muskmelon pineapple grapes papaya guava strawberries raspberry avocado pear. </span>
      </div>
      <br>
      <div class="Truncate">
         <span class="Truncate-text Truncate-text--expandable" style="max-width: 180px;"> This is the text. Apple mango banana watermelon orange kiwi pomegranate muskmelon pineapple grapes papaya guava strawberries raspberry avocado pear. </span>
      </div>
      <br>
      <div class="Truncate">
         <span class="Truncate-text Truncate-text--expandable" style="max-width: 80px;"> This is the text. Apple mango banana watermelon orange kiwi pomegranate muskmelon pineapple grapes papaya guava strawberries raspberry avocado pear. </span>
      </div>
   </div>
</body>
</html>

结论

自定义显示文本的最大宽度以防内容溢出是一种很好的做法,它可以帮助开发人员控制网站有限空间内的文本显示。按照本文讨论的方法,您将能够创建视觉上引人入胜的网站。我们也可以在卡片设计中使用截断方法。当您需要显示较长的标题、标题、卡片描述等内容时,这种方法可以使您的内容更具可读性且更易于使用。


相关文章


有用资源