纯 CSS 自定义多行省略的问题(从原理到实现)

yizhihongxing

下面我将详细讲解“纯 CSS 自定义多行省略的问题(从原理到实现)”的完整攻略。

什么是多行省略?

多行省略是指在一个元素内部的多个行内文字内容中,超出指定行数后,将其余文本省略号表示。

实现多行省略的原理

实现多行省略的原理是使用CSS中的文本溢出和换行属性,由于文本溢出是需要在一定的宽度范围内容纳文本的,而在容纳文本的情况下再加换行属性可以实现多行效果。另外还需要注意的是,文本溢出需要设置宽度、高度和overflow:hidden;属性。

实现多行省略的方法

方法一:使用 -webkit-line-clamp 属性

/* 设置文本行数为3行,并省略超出部分 */
.ellipsis {
  text-overflow: ellipsis;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 3; /* 控制显示的文本行数 */
  -webkit-box-orient: vertical;
}

方法二:使用 ::before 伪元素实现

/* 设置文本行数为2行,并省略超出部分 */
.ellipsis2::before {
  content: "";
  position: absolute;
  width: 100%;
  height: 2.4em /*控制显示的文本行数*/;
  top: 0;
  left: 0;
  background-color: inherit;
}
.ellipsis2 {
  position: relative;
  line-height: 1.2em /*控制行高*/;
  height: 3.6em; /*控制显示的总高度*/
  overflow: hidden;
  text-align: justify;
  text-justify: inter-ideograph;
}
.ellipsis2::after {
  content: "...";
  position: absolute;
  right: 0;
  bottom: 0;
  padding-left: 1em;
  background-color: inherit;
}

这里介绍了两种不同的实现方法,其中方法一使用了-webkit-line-clamp属性来控制显示的文本行数;方法二则是使用了::before和::after伪元素来模拟多行省略的效果。

示例说明:

示例一:使用方法一实现多行省略

<div class="ellipsis">
  字符串转数组 &quotABCDEFG&quot.split(&#39;&#39;) +
  &quot;&quot; =&gt; [&quot;A&quot;, &quot;B&quot;, &quot;C&quot;, &quot;D&quot;, &quot;E&quot;, &quot;F&quot;, &quot;G&quot;]
</div>

上述例子中展示了一个div元素,将长字符串压缩至三行,超出的内容被省略号所代替。

示例二:使用方法二实现多行省略

<div class="ellipsis2">
  这是一段需要省略的多行文本这是一段需要省略的多行文本这是一段需要省略的多行文本
</div>

上述例子中,展示了一个div元素,并控制总高度在3.6em内,同时限制文本行数为两行,超出的内容用“...”代替。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:纯 CSS 自定义多行省略的问题(从原理到实现) - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • CSS first-chjld伪类属性匹配一个序列的第一个元素

    CSS中的:first-child伪类选择器可以匹配一个元素的第一个子元素。这意味着,如果一个元素有多个子元素,:first-child伪类选择器会选择第一个子元素。相应地,CSS中的:first-of-type伪类选择器也可以选择一个元素的第一个指定类型的子元素。但是有时候我们想要选择一个序列的第一个元素,而不仅仅是该元素的子元素。为了实现这个目的,我们可…

    css 2023年6月10日
    00
  • css 两边固定中间自适应布局的实现

    下面是CSS两边固定中间自适应布局的实现攻略: 1. 使用flex布局实现 Flex布局可以很方便地实现两边固定,中间自适应的布局效果。 示例代码: <div class="container"> <div class="left"></div> <div class=&quo…

    css 2023年6月9日
    00
  • vue如何统一样式(reset.css与border.css)

    Vue项目中使用CSS重置样式(reset.css)和边框样式(border.css)是一个很好的实践,可以使整个网站的风格统一,提高开发效率和代码质量。 1. 安装reset.css和border.css Vue中可以使用npm包管理器进行安装reset.css和border.css,打开命令行工具,进入Vue项目根目录,执行以下命令: npm insta…

    css 2023年6月10日
    00
  • 详解Css3新特性应用之过渡与动画

    详解Css3新特性应用之过渡与动画 1. 什么是CSS3过渡? CSS3过渡是一种在元素样式发生改变时,为这些改变应用一个动画效果的技术。在样式属性的值从一个状态转变到另一个状态时,这种技术可以逐渐地改变样式属性值,而不是瞬间改变。过渡可以应用于多种样式属性,如颜色、位置、大小、形状、透明度等。通过过渡技术,我们可以创建出更流畅、更美观的界面效果。 1.1 …

    css 2023年6月10日
    00
  • jquery插件corner实现圆角边框的方法

    下面是详细的攻略: 什么是corner插件? Corner是一个jQuery插件,它可以用于实现圆角、渐变、阴影等效果。 安装corner插件 要使用Corner插件,我们需要先安装它。可以使用以下两种方式之一来安装。 通过npm安装 如果您使用npm管理您的项目依赖,可以使用以下命令来安装Corner插件: npm install jquery-corne…

    css 2023年6月10日
    00
  • Iconfont不能上传如何维护Icon

    如何维护 Iconfont 如果 Iconfont 不能上传,可以通过以下步骤进行维护: 下载 Iconfont 本地文件 打开 Iconfont 项目,在“已选中”的图标中勾选需要使用的图标; 点击页面下方的“下载代码”按钮; 选择“Symbol”类型,点击“下载”,下载得到的压缩包即为本地文件。 在项目中引入 Iconfont 解压下载得到的压缩包,将里…

    css 2023年6月10日
    00
  • 如何去掉内联样式 通过style属性定义的(element.style)

    如何去掉使用style属性定义的内联样式是前端开发中一个常见需求。以下是完整的攻略: 1. 使用JavaScript 在JavaScript中可以通过使用element.style来获取到元素的内联样式。我们可以使用element.style.property = ”来清空某一属性的内联样式。 示例1:清空段落元素P的背景颜色样式: let p = doc…

    css 2023年6月9日
    00
  • CSS 完美兼容IE6/IE7/FF的通用hack方法

    如果我们在编写CSS代码时,需要考虑兼容IE6/IE7/FF,那么就需要使用CSS通用hack来解决问题。下面是一些常见的CSS通用Hack方法,供参考: 1. 属性前缀法 color: #fff; /* 正常显示 */ _color: #f00; /* 只在IE6/IE7中显示红色 */ *color: #0f0; /* 只在IE6中显示绿色 */ 在IE…

    css 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部