技術とかの雑なToday I Learnedメモ

IEが滅びたらline-clampを使いたい

IE が滅びたら line-clamp を使いたい

-webkit-line-clamp - CSS: カスケーディングスタイルシート | MDN

"line-clamp" | Can I use... Support tables for HTML5, CSS3, etc

行数の指定やその指定をオーバーしそうな文字列を詰め込もうとしたときに省略される(...のように三点リーダーがつく)やつを導入しようとしたら IE では使えないらしい。むむむ。

もちろん IE で使えないからなんだと言ってやっていくのもいいが、IE が使われているプロダクトの場合そうも行かず、行数に対して何文字以上の場合は truncate して三点リーダーを push する、のようなことをやらざるを得ない。実際やった。

で、全角や半角で文字のサイズが違うので、指定の行数に収めるには全角や半角に関わらずバイト数を出さなきゃいけないなあと思ってバイト数に関して調べてた。

日本語は 1 文字何バイト? - Sanwa Systems Tech Blog

上記記事によれば、日本語はただのマルチバイト文字ではなく 3 バイトになったり 4 バイトになったりする場合があるらしい。

さすがにそれでバイト数を基準に処理をするのは難しいので、String.length で指定するようにした。こうすると半角の文字ばかりのときに、スペースに余裕があるのに truncate されたようになってしまうが、それはもう諦めた。仕方ない。IE が悪いよ。