WEB

CSSで複数行のテキストを省略し末尾に三点リーダ(…)を付ける方法

記事一覧ページなどで、タイトルは1行、リード文は3行分表示させ、収まらないテキストは省略して、三点リーダー(…)を付けたいという場合があります。

-webkit-line-clampプロパティを使用すると簡単にできます!

実装サンプル

画像1

この4行をセットで指定するだけ。

display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
/*表示行数を指定します。0より大きい値を指定*/
overflow: hidden;

 

HTML

<ul>
  <li>
    <h1>[省略無し]CSSで複数行のテキストを省略し末尾に三点リーダを付ける方法</h1>
    <p>[省略無し]記事一覧ページなどで、タイトルは1行、リード文は3行分表示させ、収まらないテキストは省略して、三点リーダーを付けたいという場合があります。</p>
  </li>
  <li>
    <h1 class="line-clamp line-clamp-one">[長い見出し:1行に省略]CSSで複数行のテキストを省略し末尾に三点リーダを付ける方法</h1>
    <p class="line-clamp line-clamp-three">[長いリード文:3行に省略]記事一覧ページなどで、タイトルは1行、リード文は3行分表示させ、収まらないテキストは省略して、三点リーダーを付けたいという場合があります。</p>
  </li>
  <li>
    <h1 class="line-clamp line-clamp-one">[短い見出し]タイトル</h1>
    <p class="line-clamp line-clamp-three">[短いリード文]リード文</p>
  </li>
</ul>

 

CSS

.line-clamp {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/*1行に省略*/
.line-clamp-one {
  -webkit-line-clamp: 1;
}

/*3行に省略*/
.line-clamp-three {
  -webkit-line-clamp: 3;
}

 

 

注意点

-webkit-line-clampを指定した要素の内側にリンクを設定した場合、3点リーダ(…)にhoverが効かないので外側に指定しましょう。

<!-- -webkit-line-clampを指定した要素の中にリンク指定:hover効かない-->
<ul>
  <li>
    <h1 class="line-clamp line-clamp-one">
      <a href="">⓸[長い見出し:1行に省略]CSSで複数行のテキストを省略し末尾に三点リーダを付ける方法</a>
    </h1>
    <p class="line-clamp line-clamp-three">
      <a href="">[長いリード文:3行に省略]記事一覧ページなどで、タイトルは1行、リード文は3行分表示させ、収まらないテキストは省略して、三点リーダーを付けたいという場合があります。</a>
    </p>
  </li>
</ul>
<ul>
  <!-- -webkit-line-clampを指定した要素の外にリンク指定:hover効く-->
  <li>
    <a href="">
      <h1 class="line-clamp line-clamp-one">⓹[長い見出し:1行に省略]CSSで複数行のテキストを省略し末尾に三点リーダを付ける方法</h1>
      <p class="line-clamp line-clamp-three">[長いリード文:3行に省略]記事一覧ページなどで、タイトルは1行、リード文は3行分表示させ、収まらないテキストは省略して、三点リーダーを付けたいという場合があります。</p>
    </a>
  </li>
</ul>

 

対応ブラウザ

主要ブラウザでサポートされています。

画像2

▼line-clampのサポート状況 | Can I use
https://caniuse.com/?search=line-clamp

参考サイト

こちらの記事を参考にさせていただきました。
▼Trimming Multi-Line Text in CSS | by Elad Shechter | Medium
https://elad.medium.com/trimming-multi-lines-in-css-5ae59d5e6d84

▼-webkit-line-clamp – CSS: カスケーディングスタイルシート | MDN
https://developer.mozilla.org/ja/docs/Web/CSS/-webkit-line-clamp

 

N.T
平日はコーディング、週末は子供と公園を走り回っています。
データ分析・AIの専門家集団 GRI