HTML中文本过长、超出限制字数时自动隐藏末尾部分或中间等任意部分

这篇具有很好参考价值的文章主要介绍了HTML中文本过长、超出限制字数时自动隐藏末尾部分或中间等任意部分。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在 HTML 中,可以使用 CSS 样式来控制文本的长度和显示方式。  

单行文本溢出显示省略号

        使用 text-overflow 属性:这个属性可以控制文本超出容器宽度时的显示方式,例如隐藏末尾部分。可以将其设置为 “ellipsis” 表示在末尾添加省略号。示例代码如下:

<style> 
    .text { 
        width: 200px; 
        white-space: nowrap; 
        overflow: hidden; 
        text-overflow: ellipsis; 
    } 
</style> 
<div class="text">
    这是一段很长的文本内容,超过了容器的宽度,会自动隐藏末尾部分并显示省略号。
</div>

多行文本溢出显示省略号

        多行文本溢出显示省略号可以使用CSS3中的-webkit-line-clamp属性来实现。

        示例代码如下:

.ellipsis {
  display: -webkit-box;
  -webkit-line-clamp: 2; /* 显示2行文本 */
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis; /* 文本溢出时显示省略号 */
}

        以上CSS代码中,我们使用了-webkit-box-webkit-box-orient将其设置为一个垂直盒装容器,同时使用-webkit-line-clamp属性控制文本在容器内最大展示的行数,例如上述代码中设置为2行,则文本内容超过两行时就会自动省略并显示省略号。 

        在HTML中应用该样式:

<p class="ellipsis">这是一段超长的文本,如果超出两行就显示省略号。</p>

需要注意的是,目前该实现方法只在WebKit内核的浏览器(如Safari、Chrome等)中适用,并且需要添加-webkit-前缀以兼容不同浏览器。

那么如果要隐藏中间部分呢?这个时候光写css是达不到我们想要的效果的我们需要使用JavaScript一起来设置!

基本思路:

  1. 获取文本所在的DOM元素和其文本内容。

  2. 判断文本是否超出容器宽度,如果超出,则需要对文本进行截断。

  3. 根据需要截断的位置,将文本前半部分和后半部分分别包裹在两个span元素中,并在它们之间插入一个省略号。

  4. 将新的HTML内容写回到DOM元素中。

代码示例(假设文本所在的DOM元素有一个类名叫做 "text-container"):

var textContainer = document.querySelector('.text-container');
var originalText = textContainer.textContent;
var containerWidth = textContainer.offsetWidth;

if (textContainer.scrollWidth > containerWidth) {
  var halfLength = Math.floor(originalText.length / 2);
  var newText = '<span>' + originalText.substr(0, halfLength) + '</span>...<span>' + originalText.substr(halfLength) + '</span>';
  textContainer.innerHTML = newText;
}

以上就是常用的几种控制文本长度和显示方式的方法,具体使用可以根据我们实际开发需要选择。文章来源地址https://www.toymoban.com/news/detail-468461.html

到了这里,关于HTML中文本过长、超出限制字数时自动隐藏末尾部分或中间等任意部分的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • chatGPT回答字数限制解除-怎么突破chatGPT长度的限制

    ChatGPT 是一种基于机器学习的自然语言处理技术,可以自动生成文本,包括段落、文章、新闻、电子邮件、推文等。以下是使用 ChatGPT 进行写作的基本过程: 确定写作内容和细节:首先需要 确定要生成的文本内容和相关信息,包括主题、目的、等。 收集参考材料和数

    2024年02月04日
    浏览(45)
  • Discuz!论坛发帖标题字数限制80字符可以修改吗?修改发帖标题字数的方法

    Discuz X3.4论坛网站帖子标题字数限制80字符,当我们想使用长标题的时候就得一删再删,实在是烦人,今天飞飞和你们分享Discuz论坛修改发帖标题字数的方法,总共需要修改5处代码,我修改的是限制200个字符,可以根据自己的要求修改,在修改前请备份好网站和数据库的数据

    2024年02月11日
    浏览(38)
  • DedeCMS调用栏目名称限制字数的方法

    我们在DedeCMS调用栏目名称的时候使用的标签是channel,这样就可以调用出来栏目的名称,无论栏目的名称是多长都会调用出来,如果栏目名称很长的话就会影响到导航栏的美观,所以在调用的时候还要做一些栏目名称字数的限制。   我们在调用标题的时候想要控制字数采用的

    2024年02月03日
    浏览(40)
  • dedecms调用文章简介限制字数的方法

    在dedecms模板调用文章简介时,如何限制文章简介字数多少?yii666小编整理三种方法供大家借鉴: 第一种方法:(推荐,可加省略号) [field:description function=\\\'cn_substr(Html2text(\\\"@me\\\").\\\"...\\\",80)\\\'/] 调用现成的cn_substr()字符串截取函数来实现,80为限制字节数(一个汉字等于2个字节);

    2024年02月03日
    浏览(49)
  • elementSelect 选择器多选名称过长撑开变高,超出选择框,有多个时并会撑开原始高度优化方式

            我们用elementui 多选下拉选框长度固定的情况下,选择多个长度时会强制撑开高度,那么怎么让他不换行、不撑开,而是超过的长度显示省略呢?         首先给el-select一个class名称,随意给,我给的是selects,然后加上以下样式即可; 其中,word-break:keep-all; / 不换行 / w

    2024年02月15日
    浏览(36)
  • uniapp写出文本域,右下角并限制字数200

    js代码  在data中定义一个变量desc   desc: \\\'\\\', descInput(e) {     console.log(e.detail.value.length, \\\'输入的字数\\\') },  样式: .textarea_box{     padding: 20rpx;     background-color: #F2F2F2;     /deep/ .uni-textarea-textarea{         font-size: 28rpx;         line-height: 45rpx;     }     .num{         t

    2024年02月10日
    浏览(47)
  • dedecms限制上一篇、下一篇的标题字数的方法

    织梦在内容页中会有一个标签调用上一篇和下一篇,但是在字数上一定要控制一下,这样才不会影响整体的美观,其实很简单只要添加一个字数的限制就可以了。   打开include/arc.archives.class.php文件   查找: $this-PreNext[\\\'pre\\\'] = “上一篇:{$preRow[\\\'title\\\']} “; 在这一行上面加上以

    2024年02月03日
    浏览(49)
  • 详解解决织梦dede:title字数限制的两种方法

    织梦title字数怎样限制呢?相信对织梦cms熟悉的朋友来说,这真不是一个问题。当然了,有些方法并不能通用,在特殊情况下,是没有效果的哦。好了,别的不说了,给大家贴两种常用的方法吧。 织梦cms限制title字数的两种方法: 方法一:直接使用 titlelen属性 比如我想使标题

    2024年02月02日
    浏览(48)
  • DEDECMS修改文章TAG 给TAG加链接 去掉TAG字数限制

    1、给TAG加链接: PHP Code 复制内容到剪贴板 {dede:tag sort= \\\'new\\\'  getall= \\\'0\\\' }    \\\'[field:link/]\\\'[field:tag /]    {/dede:tag}   就可以调用出本文对应的TAG,并且是带链接的。。。 2、去掉系统默认TAG标签的字数限制: 第一步:修改数据库中表dede_tagindex 和dede_taglist的tag字段属性:varch

    2023年04月16日
    浏览(42)
  • dedecms文章keywords关键词字数限制修改方法(同适用于描述)

    最近在发布文章的时候发现文章字数会有限制,如果填多了会自动截取,原来dedecms的默认限制是60个字符也就是30个,下边IT粉丝网教您如何修改织梦程序的字数限制,不管是新建网站还是老网站使用dedecms程序建议修改此项,本人亲测可行! 第一步

    2024年02月01日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包