VIDEO LESSON
CSSのtext-overflowの使い方:指定値・実例・効かない原因とブラウザー互換性の解説動画
再生時間 8:04動画を別のタブで開く ↗
動画の字幕・文字起こしを読む
再生中の字幕を濃い黒で表示し、一番上に追従します。字幕の行を選ぶと、その位置から再生できます。
- 0:00こんにちは。
- 0:00シーエスエス、リファレンス解説です。
- 0:03今回のテーマは、テキストオーバーフローです。
- 0:07これは、決められた幅に文章が入り切らないとき、はみ出した部分をどう知らせるかを決めるプロパティです。
- 0:14代表的なのは、文の末尾を三点リーダー、いわゆる点々で置き換えて、まだ続きがあることを伝える使い方です。
- 0:22カードのタイトルやファイル名などでよく見かけます。
- 0:26ただし大切なのは、このプロパティだけで文字が切り詰められるわけではない点です。
- 0:32この動画では、効くための条件と、代表的な値の違いを実例で比べながら解説します。
- 0:38長いタイトルが混ざる一覧でも、行の高さがそろうと全体が読みやすくなります。
- 0:44その整え役として覚えておくと便利です。
- 0:47まず基本の書き方です。
- 0:48セレクターを書いたら、テキストオーバーフローと書き、コロンのあとに値、最後にセミコロンを付けます。
- 0:55スライドの例では、エリプシスを指定しています。
- 0:59これで、条件がそろったときに、はみ出した末尾が省略記号に置き換わります。
- 1:04エイチティーエムエル側では、クラス、デモを持つ要素が対象になるので、セレクターとクラス名が一致しているかを最初に確認してください。
- 1:13まずはこの一行を書き、長い文章の末尾がどう変わるか確かめてみましょう。
- 1:18値のスペルを間違えると宣言ごと無効になるので、注意してください。
- 1:23次に、このプロパティが効くための条件です。
- 1:26実は三つの指定をそろえる必要があります。
- 1:29一つ目は、幅や最大幅による制約です。
- 1:31幅が決まらなければ、はみ出し自体が起きません。
- 1:35二つ目は、オーバーフローをヒドゥンにすることです。
- 1:38はみ出した部分を隠すことで、初めて切り詰めの対象になります。
- 1:43三つ目は、ホワイトスペースをノーラップにすることです。
- 1:47改行を禁止して一列に並べることで、行の末尾ではみ出しが起きます。
- 1:52この三つが三点セットです。
- 1:53一つでも欠けると、エリプシスを指定しても点々は表示されません。
- 1:58逆にいえば、点々が出ないときは、この三つのどれかが欠けていることがほとんどです。
- 2:04確認の順番として覚えておきましょう。
- 2:07ここでは、記事でも比較している二つの代表値を見ます。
- 2:11エリプシスは、はみ出した末尾を三点リーダーに置き換えます。
- 2:16読み手には、文章にまだ続きがあることが一目で伝わります。
- 2:20もう一つのクリップは初期値で、はみ出した部分をそのまま切り取ります。
- 2:26文字の途中でぷつっと切れたように見え、続きがあることは記号では伝わりません。
- 2:32場面でいうと、一覧のタイトルなど、全文が別で読めるときはエリプシスが親切です。
- 2:38まずはこの二つを切り替えて、行末の見え方の違いを自分の目で比べてみてください。
- 2:45なお、点々はブラウザーが自動で付ける表示で、元の文章データ自体が書き換わるわけではありません。
- 2:53コピーすると全文が得られます。
- 2:55初期値と継承について整理します。
- 2:58テキストオーバーフローの初期値は、クリップです。
- 3:02つまり、何も指定しなければ、はみ出した文字は記号に変わらず、そのまま切り取られます。
- 3:09そして、このプロパティは親から通常は継承しません。
- 3:13親にエリプシスを指定しても、子要素に自動では伝わらないので、省略したい要素自身に指定する必要があります。
- 3:22また、親の計算値を使うインヘリット、初期値に戻すイニシャルなども書けますが、
- 3:26普段は値を直接書くことがほとんどです。
- 3:31仕様上の初期値とブラウザーの既定表示が同じとは限らない点も覚えておきましょう。
- 3:37ここからは記事の実例です。
- 3:40エイチティーエムエルでは、ステージというクラスを付けた箱の中に、デモというクラスを付けた箱を入れます。
- 3:47その中身は、スペースのない、とても長いユーアールエルの文字列です。
- 3:53途中で折り返す場所がない長い文字列だと、横幅からはみ出す様子が分かりやすくなります。
- 3:59頭の部分では、スタイルシートをリンクで読み込むのを忘れないでください。
- 4:05比べたいのはテキストオーバーフローだけなので、文章などの土台は固定したままにします。
- 4:11親と子の入れ子の構造を先に頭に入れておきましょう。
- 4:15記事の例では、この長い文字列そのものが比較の材料になります。
- 4:20短い文章でははみ出しが起きず、値の違いが見えないためです。
- 4:24土台のシーエスエスです。
- 4:27ステージは最大幅を三十レムにし、デモの箱には濃い緑の枠線と薄い緑の背景を用意します。
- 4:34デモの最大幅は十五レムに絞り、ホワイトスペース、ノーラップとオーバーフロー、
- 4:39ヒドゥンで、一行に収めてはみ出させる条件をそろえます。
- 4:45最後の行でテキストオーバーフローをエリプシスにすると、行末が点々に変わります。
- 4:52次に最後の行だけをクリップへ置き換えると、記号は出ずに文字が途中で切れます。
- 4:58この一行の違いが比較ポイントです。
- 5:01保存して再読み込みし、行末だけに注目してください。
- 5:05幅を少しずつ変えてみると、点々が現れる位置も一緒に動くことが分かります。
- 5:11はみ出しが幅に左右される様子も確認してください。
- 5:16活用場面を考えてみましょう。
- 5:18よく使われるのは、カードや商品一覧、記事一覧のタイトルです。
- 5:22タイトルの長さがばらばらでも、各行の高さを一行にそろえられるので、一覧全体が整って見えます。
- 5:29表のセルや、横並びのナビゲーション項目、長いファイル名の表示でも同じ考え方が使えます。
- 5:36ただし、省略された全文がどこかで読めることが前提です。
- 5:40詳細ページで読めたり、タイトル属性やツールチップで全文を確認できたりする設計と組み合わせてください。
- 5:47見た目をそろえることと、情報を失わないことを両立させるのがコツです。
- 5:52効かないと感じたときの注意点です。
- 5:55まず最も多い原因は、先ほどの三点セットの不足です。
- 5:59幅の制約があるか、オーバーフローがヒドゥンになっているか、ホワイトスペースがノーラップになっているか、
- 6:04この三つを順番に確認してください。
- 6:09もう一つの誤解は、複数行の文章をこのプロパティだけで省略しようとする使い方です。
- 6:15テキストオーバーフローが扱うのは基本的に一行の行末だけです。
- 6:19そのうえで、開発者ツールで順番に調べます。
- 6:23ネットワークで取得、エレメンツでクラスの一致、スタイルズで上書きの有無、
- 6:27コンピューテッドで最終的な値を確認してください。
- 6:32最後に、三百二十ピクセル程度の狭い画面幅でも、内容を利用できるか確認しましょう。
- 6:38ブラウザー互換性を確認します。
- 6:40記事が参照するエムディーエヌの記録では、クロームは一以降、エッジは十二以降、
- 6:47ファイアフォックスは七以降、サファリは一・三以降と、とても古い版から対応が示されています。
- 6:53アンドロイド版クロームは十八以降、アイオーエス版サファリは一以降です。
- 6:59値ごとに見ても、クリップとエリプシスで対応の範囲はほぼ共通ですが、一部に補足条件ありと注記されています。
- 7:07古くから広く使えるプロパティといえますが、細かな挙動は対象ブラウザーで実物を確認すると安心です。
- 7:14スマートフォン向けのブラウザーでも早い時期から対応しているので、画面幅が変わりやすいレスポンシブな一覧でも使いやすい指定です。
- 7:24最後に練習とまとめです。
- 7:26まとめます。
- 7:27テキストオーバーフローは、幅からはみ出した一行の末尾を、省略記号で示すか、
- 7:32そのまま切り取るかを決める設定で、初期値はクリップ、継承はしませんでした。
- 7:37そして、幅の制約、オーバーフロー、ヒドゥン、ホワイトスペース、ノーラップの三点セットがそろって初めて効きました。
- 7:45練習として、まずエリプシスとクリップの違いを言葉で説明し、次に文章量や親の幅だけを変えて、
- 7:50結果がどう変わるかを比べてみてください。
- 7:55お疲れさまでした。
- 7:56関連するホワイトスペースとオーバーフローも一緒に学ぶと、文字のはみ出しをまとめて扱えるようになります。
この動画で学べること
text-overflowの役割と主な指定値を解説。1行に収まらない文章の末尾が省略記号へ変わります。初期値・継承・ブラウザー互換性、効かないときの確認方法も整理します。
解説記事・サンプルコードを読む:CSSのtext-overflowの使い方:指定値・実例・効かない原因とブラウザー互換性 →