2

文字列が大きすぎる場合、省略記号 (3 つのドット) を文字列に追加する方法はありますか?

例えば。

から:

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

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 に答える
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 に答える