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 マスタースレーブ クラスタの実装

推薦する

MySQL でスロークエリログ機能を有効にする方法

MySQL スロー クエリ ログは、問題のあるクエリを追跡するのに非常に役立ちます。現在のプログラム...

制限およびオフセット ページング シナリオを使用すると速度が遅くなるのはなぜですか?

質問から始めましょう5 年前、私が Tencent にいたとき、ページング シナリオでは MySQL...

MySQL の問題を解決する: MSVCR120.dll が見つからないため、コードの実行を続行できません

1. 問題MySQL の初期化時に発生する問題は、次のとおりです。 1. 「MSVCR120.dll...

HTMLはフォームタグを使用して登録ページのサンプルコードを実装します。

ケースの説明: - ページ効果を実現するためにテーブルを使用する- ハイパーリンクを機能させたくない...

IE ラベル LI テキスト折り返し問題について

私は長い間この問題に悩まされていましたが、検索してみたところ、実際にこの問題を解決した人がいることが...

Enterキーを押すとフォームが自動的に送信されます。予期せぬ発見

コードをコピーコードは次のとおりです。 <!DOCTYPE html> <html...

HTML における br と br/ の違い

スタックフローからの回答:単に<br>だけで十分です。その他の形式は、XHTML との互...

jQueryは、マウスをドラッグしてdivの位置とサイズを変更する方法を実装しています。

Windows フォームと同様の効果を得るには、中央をドラッグして div の位置を変更し、端をド...

JavaScriptで配列かどうかを判断するためのさまざまな方法のまとめ

目次序文配列.isArrayコンストラクタインスタンスプロトタイプオブジェクト.プロトタイプ.toS...

Dockerはコンテナに入るためにnsenterツールを使用する

Dockerコンテナを使用する場合は、nsenterツールを使用する方が便利です。システムにない場合...

Vueコンポーネントの作成方法と使用方法を説明する記事

目次1. コンポーネントとは何ですか? 2. グローバルコンポーネントを作成する方法1 1. Vue...

Nginx は https ウェブサイト構成コード例を実装します

https ベースポート 443。これはキーと呼ばれるものに使用されます。これらのことを理解せずにで...

純粋な CSS でカスタムラジオボタンとチェックボックス機能を実装する

1. 効果を達成する 2 知識ポイント2.1 <label> タグHTML では、<...

CSS3はキングをマッチングさせるときにパーティクルアニメーション効果を実現します

コーディングをしていると、多くのことが同じ結末を迎えることに気づくでしょう。問題を解決する方法は何千...

Vueはアコーディオン効果を実装する

この記事の例では、アコーディオン効果を実現するためのVueの具体的なコードを参考までに共有しています...