HTML里显示文本超长时,如何截断只显示部分?

在一个网页里,有的内容非常多,全部显示出来会很长,为了节省显示空间,我们往往只显示内容的一部分,以便能显示更多其他的内容。<br/>以前处理时,我们只是根据显示的宽度,来动态计算大概能显示多少个字符,然后截取一部分的内容显示出来。这样很麻烦,因为不同的宽度,需要截取的字符不一样,而且只截取显示一段的内容,不利于SEO优化。<br/>下面我们来看下怎么利用css来处理这种问题。

操作方法

  • 01

    首先看下我们测试例子的代码,很简单的代码,就是一个div,div里就是一段很长的字符串内容。

  • 02

    运行后,就是一个普通的div内容块。

  • 03

    如果我们的内容显示只需要显示一行,其余的隐藏,那就很简单,我们加上css样式就可以了,只需要三行样式代码,如下:
    white-space: nowrap; //这行是让字符显示不要换行,只在一行里显示
    overflow: hidden; //这行是让字符显示超过div容器宽度时,就隐藏内容
    text-overflow:ellipsis; // 这行是当字符超过div窗口宽度时,就加上省略号

    为了对比效果,我这里再加一段div的内容。 如图

  • 04

    刷新页面后,效果如图,内容显示在一行里了,超过容器的字符不显示,并用省略号表示。(我们真实的字符串里,是没有省略号的)

  • 05

    如果我们需要显示的内容不止一行时,又要怎么处理?
    比如div最多显示二行内容,超过的隐藏不显示。我们还是通过css来处理。代码如下,
    overflow: hidden;
    -webkit-line-clamp: 2;
    display: -webkit-box;
    -webkit-box-orient: vertical;

  • 06

    运行效果如图,
    但这个效果只能在Chrome,Safari浏览器下有效,因为用的是webkit特有的样式,FireFox,IE等浏览器下无效。

  • 07

    那么在FireFox,IE浏览器下,要怎么处理呢?我们可以加上一行样式,设置div容器的最大高度,代码如下,
    max-height: 40px; // 这个高度就是二行字符显示的高度,

  • 08

    FireFox浏览器下运行如下,没有省略号的效果,但也能接受了。

  • End
  • 发表于 2017-09-04 00:00
  • 阅读 ( 489 )
  • 分类:电脑网络

0 条评论

请先 登录 后评论