2

如果字符串太大,有没有办法在字符串中添加省略号(三个点)?

例如。

从:

This is a very large sentence.

至:

This is a ve...

它可以wordwrap在服务器端使用 PHP 完成,但当时很难获得渲染大小,那么有没有更好的标准方法在客户端使用 JavaScript、HTML 或 CSS 来完成?

在这里我附上了一张图片,以防你真的不明白我在说什么。

例子。 ''

4

6 回答 6

12

理想的方法是使用css text-overflow属性:

p {
  white-space: nowrap;
  width: 100%;                
  overflow: hidden;  /* "overflow" value must be different from "visible" */                
  text-overflow: ellipsis;
}
于 2013-09-24T20:00:28.223 回答
6

这是一个 PHP 函数来做你想做的事,其中 10 是要保留的字符数:

function truncateString($string) {
    if (strlen($string) > 10) {
        $string = substr($string, 0, 10) . "...";
    }
    return $string;
}

echo truncateString("Short"); // Returns "Short."
echo truncateString("Long string is long."); // Returns "Long strin..."

这仅适用于使用 PHP 生成菜单项的情况。如果您想在客户端使用 Javascript 和/或 CSS 执行此操作,则根本不会使用 PHP。

于 2013-09-24T20:00:47.720 回答
3

制作一个函数来做到这一点非常简单。

function limitstr($str,$maxlength=20,$additional="...")
{
    return (strlen($str)>$maxlength)? substr($str,0,$maxlength).$additional : $str;
}
于 2013-09-24T20:02:12.527 回答
3

Javascript

str = "This is a very large sentence."

if(str.length>12){
  str = str.substring(0, 12)+"...";
  }

演示

于 2013-09-24T20:07:04.347 回答
1

我想通过说“太大”你的意思是“不适合它的容器”。如果是这样,解决方案在CSS. 它与PHPnor完全没有关系Javascript

.your_element {
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
}
于 2013-09-24T20:00:14.997 回答
-1
If (string is > than 6) {
append three dots
} else {
leave untouched
}

php.net/strlen

php.net/substr

帮助我得出这个结论。

于 2013-09-24T20:00:11.653 回答