如果字符串太大,有没有办法在字符串中添加省略号(三个点)?
例如。
从:
This is a very large sentence.
至:
This is a ve...
它可以wordwrap
在服务器端使用 PHP 完成,但当时很难获得渲染大小,那么有没有更好的标准方法在客户端使用 JavaScript、HTML 或 CSS 来完成?
在这里我附上了一张图片,以防你真的不明白我在说什么。
''
如果字符串太大,有没有办法在字符串中添加省略号(三个点)?
例如。
从:
This is a very large sentence.
至:
This is a ve...
它可以wordwrap
在服务器端使用 PHP 完成,但当时很难获得渲染大小,那么有没有更好的标准方法在客户端使用 JavaScript、HTML 或 CSS 来完成?
在这里我附上了一张图片,以防你真的不明白我在说什么。
''
理想的方法是使用css text-overflow属性:
p {
white-space: nowrap;
width: 100%;
overflow: hidden; /* "overflow" value must be different from "visible" */
text-overflow: ellipsis;
}
这是一个 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。
制作一个函数来做到这一点非常简单。
function limitstr($str,$maxlength=20,$additional="...")
{
return (strlen($str)>$maxlength)? substr($str,0,$maxlength).$additional : $str;
}
Javascript
str = "This is a very large sentence."
if(str.length>12){
str = str.substring(0, 12)+"...";
}
我想通过说“太大”你的意思是“不适合它的容器”。如果是这样,解决方案在CSS
. 它与PHP
nor完全没有关系Javascript
。
.your_element {
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
If (string is > than 6) {
append three dots
} else {
leave untouched
}
帮助我得出这个结论。