私たちの日常的な開発作業では、テキストのオーバーフロー、切り捨て、省略は、考慮する必要がある非常に一般的なビジネス シナリオの詳細です。 「一般的」に見えますが、実装にはさまざまな違いがあります。単一行の切り捨てですか、それとも複数行の切り捨てですか?複数行の切り捨て判定は行数で判断するのでしょうか、それとも高さで判断するのでしょうか?これらの問題の解決策は何でしょうか?それらの違いと、さまざまなシナリオへの適応性は何ですか? 一般的に、このようなテキスト切り捨て効果を実現する場合、次のことが期待されます。
上記の基準に基づいて、コーディングの練習を通じていくつかの答えを示します。 単一行テキストオーバーフロー省略記号 コア 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. ダウンロードApacheの公式サイトhttp://httpd.apache.org/にアクセス...
アプリケーション例ウェブサイト http://www.uhuigou.net画像の動的読み込みは目新...
目次1. コンテンツの概要2. 文字セットと文字順序の概念と関係3. MySQL でサポートされてい...
目次スタイルスコープスタイルモジュール状態駆動型動的CSS要約するスタイルスコープ注意事項:スタイル...
今日は、Jenkins + powershell スクリプトを使用して、.NET CORE スクリプ...
目次1. オプションの連鎖演算子 [? .】 2. 論理的な空の代入 (?? =) 3. 論理和代入...
開発環境ウィンドウ開発ツール Visual Studio Codeノードのインストールとnpm Wi...
インデックスにクエリする必要があるすべてのフィールドの値が含まれている(またはカバーしている)場合、...
この記事では、Vueを使用して特定の領域に透かしを描く方法を紹介します。具体的な内容は次のとおりです...
この記事では、参考までにEasy Notepadを実装するためのVueの具体的なコードを紹介します。...
1. Vimの公式ウェブサイトにアクセスして、オペレーティングシステムに適した実行ファイルをダウンロ...
目次1. 親コンポーネントと子コンポーネント2. テンプレート分離書き込み1. テンプレートタグ2....
以下では、よく使われるヘッド構造と、各タグや要素の意味や使用シーンを紹介します(この記事は、Yisi...
目次長すぎて読めないコンポーネントスタイルの分離デモテスト優先度ページの分離構成参考文献ネイティブ ...
1. Linuxサーバーは、/etc/hosts.denyを設定して、相手のIPがSSH経由でサー...