どうも!かけちまるです!
この記事では、
を解説します。
この方法は高さが固定されてしまうので横並びのコンテンツだと表示が崩れてしまうことになります。
しかし、すべてのブラウザでサポートされています。
実装サンプル
CSSコピー.sample { font-size: 16px; line-height: 1.8; overflow: hidden; height: 5.4em; /* line-height 1.8 x 3em(行数) */ }
overflow: hidden;
ではみ出したテキストを非表示にします。height
の単位をem
で指定しています。height
の数値はline-height
× 最大行数で指定します。この方法は、行数の指定はできませんがすべてのブラウザでサポートされているので1行に決まっているときに使えそうです。
実装プレビュー
CSSコピー.sample { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
overflow: hidden;
ではみ出したテキストを非表示にします。text-overflow: elipsis;
でテキストが非表示になったときに末尾に三点リーダーをつけます。white-space: nowrap;
に指定して折り返しを無効にします。この方法は高さが動的に変わりますがIEはサポートしていません。
あとは-webkit-box-orient
は非標準のプロパティのようです。
実装プレビュー
CSSコピー.sample { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; /* 行数 */ }
overflow: hidden;
ではみ出したテキストを非表示にします。-webkit-line-clamp
で行数を指定します。display: -webkit-box;
に指定します。-webkit-box-orient: vetical;
に指定します。-webkit-line-clamp
を指定するにはdisplay
を-webkit-box
か-webkit-inline-box
に設定されており、かつ-webkit-box-orient
をvertical
にする必要があります。ちょっとトリッキーですが、
今までのCSSとjQueryを使えば動的に最大行数を変更することもできます。
この記事では仮にボタンを押すと最大行数が変化するテキストを実装していきます。
JavaScriptだけ用意するのでHTMLとCSSは自由に実装してください。
実装プレビュー
JavaScriptコピーfunction maxLine(selector, line){ selector.css({ '-webkit-line-clamp': String(line), 'line-height': '1.8', 'display': '-webkit-box', 'overflow': 'hidden', '-webkit-box-orient': 'vertical', }); } maxLine( $('.sample'), 2 ); $('#line_change2').on('click', function(){ maxLine( $('.sample'), 2 ); }); $('#line_change3').on('click', function(){ maxLine( $('.sample'), 3 ); }); $('#line_change4').on('click', function(){ maxLine( $('.sample'), 4 ); });
今回は CSSで指定行数を超えた時にテキストを非表示にする方法を解説しました。
-webkit-box-orientは非標準プロパティのようなので3点リーダーをつけたいというこだわりがなければ別の方法が無難かも知れませんね。
といいつつ今のところ一番汎用性があると思うので個人的には使っていきたいと思ってます。
また、WordPressとかであればその辺はPHPでも対応できると思うので調べてみるとよさそうです。
おわり
フィードバックを送信
記事についてのフィードバックはTwitterかお問い合わせフォームから受け付けております。