text-overflow: ellipsis;が効かない場合の対処法

テキストが要素の幅を超えた際に、末尾を三点リーダー(…)で省略表示するために使用するtext-overflow: ellipsis;ですが、期待通りに動作しない場合があります。その原因と対処法について解説します。

text-overflow: ellipsis;が効かない原因

text-overflow: ellipsis;は、以下の条件が満たされている場合に有効になります。

  • white-space: nowrap;が設定されていること(テキストが改行されないようにする)
  • overflow: hidden;が設定されていること(要素からはみ出した部分が表示されないようにする)
  • 親要素または自身がdisplay: block;display: inline-block;など、幅を持つディスプレイ設定であること

これらの条件が揃っていない場合、text-overflow: ellipsis;が機能しません。

display: block;の効果と対処法

特にdisplayの設定がinlineになっていると、要素の幅がテキストの長さに依存するため、text-overflow: ellipsis;が効かないことが多いです。この場合、display: block;またはdisplay: inline-block;に変更することで、要素に幅を設定し、省略表示が正しく機能するようになります。

コード例

.ellipsis {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    display: block; /* 必要に応じて変更 */
    width: 200px; /* 必要に応じて幅を設定 */
}

その他の注意点

親要素の幅や、要素がflexgridのレイアウト内に配置されている場合など、特殊なケースではさらにレイアウトに合わせた調整が必要です。必要に応じてmax-widthmin-widthなどを設定することで、表示を安定させることができます。

まとめ

text-overflow: ellipsis;が効かない場合は、displayプロパティをblockまたはinline-blockに変更し、overflowwhite-spaceの設定を見直してみましょう。また、要素の幅も調整することで、意図した省略表示が可能になります。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール