私たちの日常的な開発作業では、テキストのオーバーフロー、切り捨て、省略は、考慮する必要がある非常に一般的なビジネス シナリオの詳細です。 「一般的」に見えますが、実装にはさまざまな違いがあります。単一行の切り捨てですか、それとも複数行の切り捨てですか?複数行の切り捨て判定は行数で判断するのでしょうか、それとも高さで判断するのでしょうか?これらの問題の解決策は何でしょうか?それらの違いと、さまざまなシナリオへの適応性は何ですか? 一般的に、このようなテキスト切り捨て効果を実現する場合、次のことが期待されます。
上記の基準に基づいて、コーディングの練習を通じていくつかの答えを示します。 単一行テキストオーバーフロー省略記号 コア CSS ステートメント
アドバンテージ
欠点
適用可能なシナリオ
デモ <div class="demo"> ベッドの前では月明かりが明るい。 ベッドの前では月明かりが明るい。 ベッドの前では月明かりが明るい。 ベッドの前では月明かりが明るい。 ベッドの前では月明かりが明るい。 ベッドの前では月明かりが明るい。 ベッドの前では月明かりが明るい。 ベッドの前では月明かりが明るい。</div> .デモ{ 空白: ラップなし; オーバーフロー: 非表示; テキストオーバーフロー: 省略記号; } 効果例 複数行テキストのオーバーフロー省略記号 (-webkit-line-clamp) コア CSS ステートメント
アドバンテージ
欠点 一般的な互換性: -webkit-line-clamp プロパティは、WebKit カーネルを搭載したブラウザでのみサポートされます。 適用可能なシナリオ モバイルデバイスのブラウザはWebKitカーネルに基づいているため、モバイルページに適しています。 デモ <div class="demo"> ベッドの前では月明かりが明るい。 ベッドの前では月明かりが明るい。 ベッドの前では月明かりが明るい。 ベッドの前では月明かりが明るい。 ベッドの前では月明かりが明るい。 ベッドの前では月明かりが明るい。 ベッドの前では月明かりが明るい。 ベッドの前では月明かりが明るい。 ベッドの前では月明かりが明るい。 ベッドの前では月明かりが明るい。 ベッドの前では月明かりが明るい。 ベッドの前では月明かりが明るい。 ベッドの前では月明かりが明るい。 ベッドの前では月明かりが明るい。 ベッドの前では月明かりが明るい。 ベッドの前では月明かりが明るい。 .デモ{ ディスプレイ: -webkit-box; オーバーフロー: 非表示; -webkit-line-clamp: 2; -webkit-box-orient: 垂直; } 効果例 複数行テキストのオーバーフロー省略記号(疑似要素 + 配置) コア CSS ステートメント
アドバンテージ
欠点
適用可能なシナリオ テキストコンテンツが多く、テキストコンテンツがコンテナを超えることは確実です デモ <div class="demo"> 寝床の前の月光 寝床の前の月光 寝床の前の月光 寝床の前の月光 寝床の前の月光 寝床の前の月光 寝床の前の月光 寝床の前の月光 寝床の前の月光 寝床の前の月光 寝床の前の月光 寝床の前の月光 寝床の前の月光 寝床の前の月光 寝床の前の月光 寝床の前の月光 寝床の前の月光 寝床の前の月光 .デモ{ 位置: 相対的; 行の高さ: 18px; 高さ: 36px; オーバーフロー: 非表示; 単語区切り: 全区切り; } .demo::after { コンテンツ:"..."; フォントの太さ:太字; 位置:絶対; 下:0; 右:0; パディング:0 20px 1px 45px; /* 表示効果を高めるために */ 背景: -webkit-gradient(linear, left top, right top, from(rgba(255, 255, 255, 0)), to(white), color-stop(50%, white)); 背景: -moz-linear-gradient(右へ、rgba(255, 255, 255, 0)、白 50%、白); 背景: -o-linear-gradient(右へ、rgba(255, 255, 255, 0)、白 50%、白); 背景: -ms-linear-gradient(右へ、rgba(255, 255, 255, 0)、白 50%、白); 背景: linear-gradient(右へ、rgba(255, 255, 255, 0)、白 50%、白); } 効果例 複数行テキストのオーバーフロー省略記号 (Float) コア CSS ステートメント
アドバンテージ
欠点 省略記号は正しく表示されない場合があり、テキストの半分を覆ったり、テキストにぴったりと収まらなかったりすることがあります。 適用可能なシナリオ テキストコンテンツが多く、テキストコンテンツがコンテナを超えることは確実です デモ <div class="demo"> <div class="text"> ベッドの前では月明かりが明るい。 ベッドの前では月明かりが明るい。 ベッドの前では月明かりが明るい。 ベッドの前では月明かりが明るい。 ベッドの前では月明かりが明るい。 ベッドの前では月明かりが明るい。 ベッドの前では月明かりが明るい。 ベッドの前では月明かりが明るい。 ベッドの前では月明かりが明るい。 ベッドの前では月明かりが明るい。 ベッドの前では月明かりが明るい。 ベッドの前では月明かりが明るい。 ベッドの前では月明かりが明るい。 ベッドの前では月明かりが明るい。 ベッドの前では月明かりが明るい。 </div> .デモ{ 高さ: 40px; 行の高さ: 20px; オーバーフロー: 非表示; } .デモ.テキスト{ フロート: 右; 左マージン: -5px; 幅: 100%; 単語区切り: 全区切り; } .demo::before { フロート: 左; 幅: 5px; コンテンツ: ""; 高さ: 40px; } .demo::after { フロート: 右; コンテンツ: "..."; 高さ: 20px; 行の高さ: 20px; 右パディング: 5px; テキスト配置: 右; 幅: 3em; 左マージン: -3em; 位置: 相対的; 左: 100%; 上: -20px; 右パディング: 5px; /* 表示効果を高めるために */ 背景: -webkit-gradient( リニア、 左上、 右上、 (rgba(255, 255, 255, 0))から、 (白)に、 カラーストップ(50%、白) ); 背景: -moz-linear-gradient( 右へ、 RGBA(255, 255, 255, 0)、 白 50%、 白 ); 背景: -o-線形グラデーション( 右へ、 RGBA(255, 255, 255, 0)、 白 50%、 白 ); 背景: -ms-linear-gradient( 右へ、 RGBA(255, 255, 255, 0)、 白 50%、 白 ); 背景: 線形グラデーション( 右へ、 RGBA(255, 255, 255, 0)、 白 50%、 白 ); } 効果例 これで、純粋な CSS で「テキストオーバーフロー、切り捨て、省略」を実装するいくつかの方法についての記事は終了です。CSS テキストオーバーフロー、切り捨て、省略に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM を応援していただければ幸いです。 |
<<: JavaScript配列の一般的なメソッドの詳細な説明
>>: イラスト風ウェブサイトホームページデザイン ウェブサイトデザインの新トレンド
目次1. v-for: 配列の内容を走査する(よく使われる) 2. v-for: オブジェクトのプロ...
Java開発キットjdkをダウンロードするJDK のダウンロード アドレスはhttp://www.o...
問題の説明:エラーメッセージ:原因: com.mysql.jdbc.PacketTooBigExce...
この記事では、Mysql の自己結合クエリについて説明します。ご参考までに、詳細は以下の通りです。自...
暫定的な応答を示し、要求者に操作の続行を要求するステータス コード。コードの説明100 (続行) リ...
1. MySQLをダウンロードするURL: https://dev.mysql.com/downlo...
HTTPとは何ですか?ウェブサイトを閲覧したいときは、ブラウザのアドレス バーにウェブサイトのアド...
大規模な開発に Docker を使用する場合でも、クリーンアップ戦略がなければ、ディスクがすぐにいっ...
エラーメッセージ:エラー 2002: ソケット '/tmp/mysql.sock' ...
Ubuntu は、Linux をベースにした無料のオープンソース デスクトップ PC オペレーティン...
多くの友人は、フロントエンドを学習するときに、ボックス モデルがデフォルトで正方形であることに気付き...
「人間中心」と「グリーンデザイン」という2つの視点から考える——デザイン業界の同僚とも議論する2つの...
この記事では、CSS を使用して検索機能付きのナビゲーション バーを作成する方法を説明します。以下の...
目次DOMContentLoadedとロードjs ブロッキングとは何ですか? CSS ブロッキングと...
Ubuntu 18.04、その他のバージョンのUbuntu質問: sudo apt-get ins...