CSSの省略記号とパディングを組み合わせた場合の問題の詳細な説明

CSSの省略記号とパディングを組み合わせた場合の問題の詳細な説明

CSS によるテキストの切り捨て

テキストを自動的に切り捨てるスタイル コードを実装するには、次のコードを検討してください。

.切り捨てテキスト4 {
  オーバーフロー: 非表示;
  テキストオーバーフロー: 省略記号;
  ディスプレイ: -webkit-box;
  -webkit-box-orient: 垂直;
  -webkit-line-clamp: 4;
}

テストには次の HTML スニペットを使用します。

<スタイル>
  .my-div {
    幅: 300ピクセル;
    マージン: 10px 自動;
    背景: #ddd;
  }
</スタイル>
<div class="my-div 切り捨てテキスト-4">
  シャッフルしない方法 - Knuth Fisher-Yates アルゴリズム。著者: Mike James。
  2017 年 2 月 16 日木曜日。単純なアルゴリズムが間違っている場合もあります。
  この場合は...をシャッフルします。言い換えると、配列がスキャンされると要素
  下
</div>

操作効果:

CSS ellipsisによるテキスト切り捨て効果

パディングの問題

テキスト コンテナーにpaddingを追加するまではすべて完璧に動作します。

  .my-div {
    幅: 300ピクセル;
    マージン: 10px 自動;
    背景: #ddd;
+ パディング: 30px;
  }
現在の効果

効果は次のようになります:

paddingテキストの切り捨てが解消される

padding要素の内部スペースを占有しますが、この領域の部分は要素内にあるため、 overflow: hiddenの影響を受けません。

解決

line-height

line-height適切に設定されているか、十分に大きい場合は、 paddingをオフセットして、表示範囲から余分な部分を絞り出すという目的を達成できます。

.my-div {
  幅: 300ピクセル;
  マージン: 10px 自動;
  背景: #ddd;
  パディング: 30px;
+ 行の高さ: 75px;
} 

line-heightで修正する

すべての場所でこれほど大きな行の高さが必要なわけではないため、この方法はすべてのシナリオに適しているわけではありません。

パディングを置き換える

paddingは、要素のコンテンツとその境界の間、または要素と他の要素の間にスペースを追加することです。ここでは、実際の交換方法を検討します。

たとえば、 margin 。ただし、この例のように要素に背景がある場合は、要素のmargin部分に背景がないため、 marginテストは適用されません。

代わりにborderを使用することもできます。

.my-div {
  幅: 300ピクセル;
  マージン: 10px 自動;
  背景: #ddd;
- パディング: 30px;
+ 境界線: 30px 透明の実線;
} 

paddingの代わりにborderを使用する

当然のことながら、それでもまだ限界はあります。つまり、要素自体に独自のborderスタイル要件がある場合、競合が発生します。

コンテンツコンテナから余白を分離する

これは、コンテンツとマージンを 2 つの要素に分離し、1 つの要素をマージンを実装するために専用に使用し、もう 1 つの要素をテキストの切り捨てを実装するために使用されるという、より普遍的な方法である可能性があります。これは簡単に理解できます。コードを見るだけです:

<div クラス名="my-div">
  <div className="切り捨てテキスト-4">
    シャッフルしない方法 - Knuth Fisher-Yates アルゴリズム。著者: Mike
    ジェームズ。2017年2月16日木曜日。時には単純なアルゴリズムが
    間違いです。この場合は...をシャッフルします。言い換えると、配列がスキャンされるときに
    下の要素
  </div>
</div>

私たちのスタイルはそのままでいいのです。

コンテンツコンテナから余白を分離する

関連リソース

オーバーフロー: 下部パディングを無視して非表示

オーバーフローを強制的に非表示にして、パディング右スペースを使わないようにするにはどうすればいいですか?

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

<<:  react-navigation6.xルーティングライブラリの基本的な使い方の詳しい説明

>>:  Docker ベースの Redis マスタースレーブ クラスタの実装

推薦する

M1 チップに MySQL 8.0 データベースをインストールする方法 (画像とテキスト)

1. ダウンロードまず、MySQLの国内ミラーをお勧めします。特に速いわけではありませんが、それで...

Vue.js ドラッグ可能なテキストボックスコンポーネントの使用方法の詳細な説明

目次コンポーネントの登録コンポーネントの追加ソースコードドラッグ可能なテキスト ボックスでは、ユーザ...

Vueルーティング相対パスジャンプメソッド

目次Vueルーティング相対パスジャンプ1. 属性の追加2.router.resolveメソッドVue...

Linux でシェル スクリプトを使用して jar パッケージ プロジェクトを展開するための完全な手順

1. JDKをインストールする コンピュータの動作桁を確認します。 uname -ar 2017 x...

Dockerコンテナの中国語言語パックの設定の問題を解決する

Dockerでdocker search centosを使用する場合docker pull dock...

Dockerサーバーのストレージリソースプール不足問題の解決

目次1. 問題の説明2. 問題分析3. 問題解決1. Dockerのディスク使用量を確認する2. 再...

Vue の基本 MVVM、テンプレート構文、データバインディング

目次1. Vueの概要Vue公式サイトMVVM アーキテクチャ パターンVue の紹介2. Vueを...

MySQL テーブルスペースの断片化の概念と関連する問題の解決策

目次背景表領域の断片化とは何ですか?表領域の断片化を確認する方法表スペースの断片化問題を解決する方法...

CSSのclip-pathプロパティを使用して不規則なグラフィックを表示する

clip-path CSS プロパティはクリッピングを使用して要素の表示可能領域を作成します。領域内...

ログインと登録機能を実現するjs

この記事の例では、ログインと登録機能を実装するためのjsの具体的なコードを参考までに共有しています。...

MySQL ディープ ページング (数千万のデータを素早くページ分割する方法)

目次序文場合最適化まとめ序文バックエンド開発では、一度に大量のデータがロードされ、メモリやディスク ...

vue3 の setUp とリアクティブ関数の使用方法の詳細な説明

1. いつsetUpを実行するかvue3 ではメソッドを正常に使用できるようになったことは誰もが知っ...

Vue の v-model ディレクティブと .sync 修飾子の違いの詳細な説明

目次vモデル.sync微妙な違い機能シナリオを要約します。 vモデル <!--親コンポーネント...

MySQL複合インデックスの概要

目次1. 背景2. 複合インデックスを理解する3. 左端一致原則4. フィールド順序の影響5. 単一...

Linux でジャンプ サーバー経由でリモート サーバーに接続し、ファイルを転送する方法

最近、Linux ホストに環境を展開する際に多くの問題に遭遇しました。最初の問題は、ジャンプ サーバ...