Tailwind CSSでline-clampが効かない理由と対処法

公開日:
目次

Tailwind CSSを使ってテキストの文字数を制限するためにline-clampを利用しようとした際、「...」以降も改行されて表示されてしまう問題に遭遇しました。

これに対する原因と解決策を具体的に説明します。

原因

この問題の原因は、paddingが設定されていたためです。具体的には、Tailwind CSSのpyクラス(例えばpy-2)を一緒に利用していたことが問題を引き起こしていました。

<div class="py-2 line-clamp-3">
  Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
</div>

上記のコードでは、py-2クラスが適用されているため、line-clampが正しく機能せず、...以降のテキストが改行されて表示されてしまいます。

解決策

パディングを完全に削除するか、別の方法でパディングを設定することで、この問題を解決できます。

以下に、具体的な解決策を示します。

方法1: パディングを削除する

単純にパディングを削除し、line-clampを適用します。

<div class="line-clamp-3">
  Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
</div>

方法2: 文字部分を別の要素に移す

パディングを保持したまま、テキスト部分を別の要素に移し、その要素にline-clampを適用します。

<div class="py-2">
  <div class="line-clamp-3">
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
  </div>
</div>

このようにすることで、パディングを維持しつつ、line-clampが正しく機能するようになります。