如何使用 CSS 防止换行

简介: 如何使用 CSS 防止换行

简介

开发人员通常喜欢在网页上对文本进行换行。换行会以某种方式限制文本,防止设计问题。文本换行还可以防止水平滚动。但有时候,您希望文本块保持在同一行,不考虑长度。您可以使用 CSS 的 white-space 属性来防止特定元素的换行和文本换行。

在本教程中,您将以四种不同的方式对相同的文本块进行样式设置,首先是带有换行,然后是三次不带换行:

<p class="sammy-wrap"    > Medusafish banded killifish convict blenny saury threadsail beluga sturgeon. Indian mul mora cisco masu salmon, roosterfish requiem shark longnose lancetfish bluefish red snapper Sacramento splittail giant danio.</p>
<p class="sammy-nowrap-1"> Medusafish banded killifish convict blenny saury threadsail beluga sturgeon. Indian mul mora cisco masu salmon, roosterfish requiem shark longnose lancetfish bluefish red snapper Sacramento splittail giant danio.</p>
<p class="sammy-nowrap-2"> Medusafish banded killifish convict blenny saury threadsail beluga sturgeon. Indian mul mora cisco masu salmon, roosterfish requiem shark longnose lancetfish bluefish red snapper Sacramento splittail giant danio.</p>
<p class="sammy-wrap"    > Medusafish&nbsp;banded&nbsp;killifish&nbsp;convict&nbsp;blenny&nbsp;saury&nbsp;threadsail&nbsp;beluga&nbsp;sturgeon.&nbsp;Indian&nbsp;mul&nbsp;mora&nbsp;cisco&nbsp;masu&nbsp;salmon,&nbsp;roosterfish&nbsp;requiem&nbsp;shark&nbsp;longnose&nbsp;lancetfish&nbsp;bluefish&nbsp;red&nbsp;snapper&nbsp;Sacramento&nbsp;splittail&nbsp;giant&nbsp;danio.</p>

这将为您提供几种包装或不包装文本的选项。

先决条件

要完成本教程,您需要:

  • 一个您喜欢的代码编辑器,如 nano 或 Visual Studio Code
  • 一个网络浏览器
  • 对 HTML 基础知识的了解。您可以查看我们的教程系列《如何使用 HTML 构建网站》来进行入门。

步骤 1 — 在 CSS 中阻止和强制换行

在这一步中,您将创建一个样式表,其中包含三种不同的类。每个类将以不同的方式处理换行:第一个将以默认方式断开文本,而第二个和第三个将强制文本不换行。

首先,使用 nano 或您喜欢的编辑器创建并打开一个名为 main.css 的新文件:

nano main.css

添加以下内容,其中将介绍使用几个属性(包括 white-space)的三个 CSS 类:

.sammy-wrap {
    border-radius: 6px;
    background-color: aliceblue;
    border: 2px dashed gray;
    max-width: 70%;
    padding: 1em;
    margin-bottom: .4em;
}
.sammy-nowrap-1 {
    border-radius: 6px;
    background-color: aliceblue;
    border: 2px dashed gray;
    max-width: 70%;
    padding: 1em;
    margin-bottom: .4em;
    white-space: nowrap;
}
.sammy-nowrap-2 {
    border-radius: 6px;
    background-color: aliceblue;
    border: 2px dashed gray;
    max-width: 70%;
    padding: 1em;
    margin-bottom: .4em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

您的第一个类是 .sammy-wrap。它定义了六个常见的 CSS 属性,包括 border-radiusbackground-colorborder max-widthpaddingmargin-bottom。这个类将创建一个视觉框,但它不定义任何特殊的换行属性。这意味着它将以默认方式断开行。

您的第二个类是 .sammy-nowrap-1。它定义了与 .sammy-wrap 相同的框,但现在您添加了另一个属性:white-spacewhite-space 属性有许多选项,所有这些选项都定义了如何处理给定元素内的空白。在这里,您将 white-space 设置为 nowrap,这将防止所有换行。

您的第三个类是 .sammy-nowrap-2。它添加了 white-space 和另外两个属性:overflowtext-overflowoverflow 属性处理 可滚动溢出,即当元素内的内容超出该元素的边缘时发生的情况。overflow 属性可以使内容可滚动、可见或隐藏。您将 overflow 设置为 hidden,然后使用 text-overflow 属性添加了更多的自定义。text-overflow 可以帮助您向用户发出信号,表明有额外的文本被隐藏。您将其设置为 ellipsis,因此现在您的行既不会断开也不会延伸到框外。CSS 将隐藏溢出并用 ... 表示隐藏的内容。

保存并关闭文件。

现在您有了一个样式表,可以制作一个包含一些示例文本的简短 HTML 文件。然后,您将在浏览器中加载网页,并检查 CSS 如何防止换行。

步骤 2 — 创建 HTML 文件

在定义了 CSS 类之后,你可以将它们应用到一些示例文本中。

在你喜欢的编辑器中创建并打开一个名为 index.html 的文件。确保它与 main.css 放在同一个文件夹中:

nano index.html

添加以下内容,它将把 main.css 关联为你的 stylesheet,然后将你的类应用到一个示例文本块中:

<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>如何使用 CSS 防止换行</title>
<link href="main.css" rel="stylesheet">
</head>
<body>
<p class="sammy-wrap"    > Medusafish banded killifish convict blenny saury threadsail beluga sturgeon. Indian mul mora cisco masu salmon, roosterfish requiem shark longnose lancetfish bluefish red snapper Sacramento splittail giant danio.</p>
<p class="sammy-nowrap-1"> Medusafish banded killifish convict blenny saury threadsail beluga sturgeon. Indian mul mora cisco masu salmon, roosterfish requiem shark longnose lancetfish bluefish red snapper Sacramento splittail giant danio.</p>
<p class="sammy-nowrap-2"> Medusafish banded killifish convict blenny saury threadsail beluga sturgeon. Indian mul mora cisco masu salmon, roosterfish requiem shark longnose lancetfish bluefish red snapper Sacramento splittail giant danio.</p>
<p class="sammy-wrap"    > Medusafish&nbsp;banded&nbsp;killifish&nbsp;convict&nbsp;blenny&nbsp;saury&nbsp;threadsail&nbsp;beluga&nbsp;sturgeon.&nbsp;Indian&nbsp;mul&nbsp;mora&nbsp;cisco&nbsp;masu&nbsp;salmon,&nbsp;roosterfish&nbsp;requiem&nbsp;shark&nbsp;longnose&nbsp;lancetfish&nbsp;bluefish&nbsp;red&nbsp;snapper&nbsp;Sacramento&nbsp;splittail&nbsp;giant&nbsp;danio.</p>
</body>
</html>

你已经将标准的换行样式分配给了第一个文本块,将 nowrap 样式分配给了第二个,并将 nowrapellipsis 隐藏到了第三个中。你已经将 sammy-wrap 分配给了第四个示例,但是通过直接在 HTML 中插入不换行空格 ( ) 来覆盖了默认的换行。如果你需要临时防止换行,那么不换行空格可以提供一个快速的解决方案。

在 web 浏览器中打开 index.html 并查看你的结果。你的四个文本块将会显示如下:

Medusafish banded killifish convict blenny saury threadsail beluga sturgeon. Indian mul mora cisco masu salmon, roosterfish requiem shark longnose lancetfish bluefish red snapper Sacramento splittail giant danio.


Medusafish banded killifish convict blenny saury threadsail beluga sturgeon. Indian mul mora cisco masu salmon, roosterfish requiem shark longnose lancetfish bluefish red snapper Sacramento splittail giant danio.


Medusafish banded killifish convict blenny saury threadsail beluga sturgeon. Indian mul mora cisco masu salmon, roosterfish requiem shark longnose lancetfish bluefish red snapper Sacramento splittail giant danio.


Medusafish banded killifish convict blenny saury threadsail beluga sturgeon. Indian mul mora cisco masu salmon, roosterfish requiem shark longnose lancetfish bluefish red snapper Sacramento splittail giant danio.


你已成功地定制了你的 CSS 属性,以防止或允许四种不同的换行方式。

结论

在本教程中,你使用了 CSS 来防止文本块的换行。你为盒子内的文本添加了样式,然后添加了 white-space 属性来覆盖默认的文本换行。要了解更多关于处理文本换行和空白的内容,请考虑探索整个 white-space CSS 属性。


目录
相关文章
|
前端开发 容器
CSS 强制英文、中文在一行时不需要换行
CSS 强制英文、中文在一行时不需要换行
116 0
|
1月前
|
前端开发 容器
CSS 中几种常用的换行方法
CSS 中几种常用的换行方法
27 1
|
5月前
|
前端开发
技术经验分享:CSS之换行
技术经验分享:CSS之换行
171 0
CSS3 flex 布局在 wrap 换行模式下,让中间指定元素换行
CSS3 flex 布局在 wrap 换行模式下,让中间指定元素换行
1149 0
|
6月前
|
前端开发 容器
css英文文本不换行,css怎么实现英文不换行
css英文文本不换行,css怎么实现英文不换行
104 1
|
6月前
|
自然语言处理 前端开发 容器
深入研究 CSS 文本换行
深入研究 CSS 文本换行
134 0
|
前端开发
css强制换行
css强制换行
|
前端开发
css实现强制不换行/自动换行/强制换行
css实现强制不换行/自动换行/强制换行
CSS3 【display: flex; 】与【flex-wrap: 换行模式;】的使用
CSS3 【display: flex; 】与【flex-wrap: 换行模式;】的使用
86 0
|
前端开发
css 实现标签内容多行截取(...)数字换行--英文--文字处理
css 实现标签内容多行截取(...)数字换行--英文--文字处理