領域に収まらない文字数を「...」にしたい

1行とのき

行が1行のときなら、以下のCSSで、超えた部分を「...」に変えてくれる。

  overflow:hidden;
  text-overflow:ellipsis;

ちなみにこれはIEが先進的に取り入れたものであり、他のブラウザでは使えなかったというのを
多く読んだが、使いたい最近のブラウザで使用可能なことを確認した。

しかし複数行になるところは

しかし複数行になるところは、「...」に置き換わらない。

すこし改良

ちなみにCSS
引用:

.ellipsis {
        white-space: nowrap;
        overflow: hidden;
}

.ellipsis.multiline {
        white-space: normal;
}

となっていますが、これだと英字が続いた場合、以下の記事の理由により「...」にならない。
table-cell でレイアウトしたいとき - bi_naの日記
英字が続くとどこで折り返してよいのかわからず、領域が横に伸びてしまうのだ。
ちなみに視覚的には伸びているのに気づきにくい場合がある。Developer Toolなどで、どのような領域(ボックスモデル)になっているか
確認することでこの事実に気づいた。

そこで次のCSSを追加

word-wrap : break-word;

しかしこれまた、先進的な実装らしく、本当は break-all;にしたかったのだけど、
break-all;がFirefoxが対応しておらず、break-wordなら使いたいブラウザで対応できていることを確認でき、break-word;を使用することにした。

PHPで文字数指定でやる場合はこちら

mb_strimwidth
PHP: mb_strimwidth - Manual