Primer CSS 自定义最大宽度截断
在 Web 开发项目中,开发者经常会遇到需要在指定空间内显示文本的情况,原因有很多,例如客户需求、整体外观、资源有限等等。CSS 中的 `truncate` 属性是一个有效的特性,可以解决这个问题。
它允许开发者显示单行文本,并用省略号截断溢出的文本。但是,根据具体情况,可能需要自定义截断文本的最大宽度。在这篇文章中,我们将讨论如何使用 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` 属性的值设置为 `horizontal`,以便用户可以通过从右角拖动来水平调整框的大小。为了向元素添加水平滚动条,我们使用了 `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>
结论
在内容溢出的情况下自定义显示文本的最大宽度是一个良好的实践,它可以帮助开发者控制文本在网站上有限空间内的显示。按照本文中讨论的方法,您将能够创建视觉上更具吸引力的网站。我们还可以将截断方法用于卡片设计。这使得您的内容更易于阅读和用户友好,同时您需要显示较长的标题、标题、卡片描述等。