zishu's blog

zishu's blog

一个热爱生活的博主。https://zishu.me

文字のオーバーフローを非表示にする問題やflexとの競合に関する問題

特定の段落では、テキストが 1 行のみ表示される必要がありますが、widthが固定されており、テキストが長すぎると、長さ制限を超えるテキストが非表示になり省略記号が表示される必要があります。CSS はこのようなプロパティをサポートしています。

1 行テキストのオーバーフロー非表示

div{
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

複数行テキストのオーバーフロー非表示

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

わずか数行のコードで要件を満たすことができます。

ただし、注意する必要があるポイントがあります!

flex レイアウトは、フロントエンドのコーディングでよく使用されるレイアウト方法であり、シンプルで効果的ですが、flex レイアウトを使用している要素では同時にテキストのオーバーフローを非表示にすることはできません、つまり、これら 2 つは同じタグ内で同時に表示されることはできません。

ここで、対応策があります。

flex レイアウトと非表示のスタイルが同じレベルの要素にないことを確認するだけでよく、そのためにはテキストの外側にさらに 1 つのタグを追加します。

以下のコードのように記述することができます;

<p>   
    <!-- ここでflexレイアウトを適用する -->
    <span>  <!-- ここでテキストのオーバーフロー非表示スタイルを適用する -->
        <!-- テキスト -->
    </span>
</p>
読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。