CSS截断自定义最大宽度
在网页开发项目中,开发人员面临着需要在指定的空间内显示文本的情况,原因有很多,比如客户需求、整体外观、有限的资源等。截断(truncate)属性是CSS中一个有效的功能,可以解决这个问题。
它使开发人员能够显示单行文本,并截断溢出的文本为省略号。然而,根据情况的不同,可能需要自定义截断文本的最大宽度。在本文中,我们将讨论如何使用Primer CSS来自定义最大宽度,Primer CSS是GitHub设计系统设计的一款流行的开源CSS框架。
截断是什么意思
在网页设计中,截断是CSS的text-overflow属性的一个值之一。在处理文本时,经常会遇到容器不足以容纳文本的情况。这个溢出的文本被称为溢出文本。它可以让我们显示一行文本,然后用省略号截断剩余部分。
在CSS中,要使用“截断”,您需要执行以下步骤:
- 将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.25rem)的填充。
接下来,我们使用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>
结论
在内容溢出时自定义显示文本的最大宽度是一种良好的做法,它可以帮助开发人员在网站的有限空间内控制文本的显示。通过本文讨论的方法,您将能够创建视觉上吸引人的网站。在卡片设计中,我们还可以使用截断方法。这样可以使您的内容更易读和用户友好,同时必须显示较长的标题,新闻标题,卡片描述等。