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 がユーザー名とパスワードの漏洩を引き起こす可能性のある Riddle の脆弱性を公開

MySQL バージョン 5.5 および 5.6 を標的とする Riddle 脆弱性により、中間者攻撃...

Docker、Nginx、Jenkins をベースにした自動フロントエンド デプロイメント

目次事前準備展開ターゲットDocker環境構築クラウドサーバーに接続Docker環境をインストールす...

TypeScript名前空間の説明

目次1. 定義と使用1.1 定義1.2 使用2. 複数のファイルに分割する3. エイリアス序文: T...

MySQLはconnect_by_isleaf MySQLメソッドまたはストアドプロシージャに似た機能を実装します

最近、特に異常なビジネス需要があり、テーブルがあります テーブル「デモ」を作成します( `id` i...

Centos7 の起動プロセスと Systemd での Nginx の起動構成

Centos7 の起動プロセス: 1.post(電源投入時のセルフテスト) 電源投入時のセルフテスト...

Kubernetesでポッドを作成する方法

目次ポッドを作成するには? kubectl ツールポッドを作成するには?前回の記事では、コンテナとポ...

Linux で完全な Samba サーバーを構築する方法 (CentOS バージョン)

序文smb は、クライアントとサーバー間の Web 接続および情報通信に使用できるプロトコルの名前で...

JQueryセレクターの詳細な説明

目次基本的なセレクター:レベルセレクター:属性セレクター:フィルターセレクター:フォーム属性セレクタ...

VMware Workstation Pro 16 グラフィックチュートリアル (CentOS8 仮想マシン クラスタの構築)

目次準備VMware Workstation Pro 16 をインストールするLinux仮想マシンの...

Webpack ファイル パッケージ化エラー例外

webpack をパッケージ化する前に、次の作業が完了していることを確認する必要があります。 1) ...

nginx を https をサポートするように設定するためのサンプル コード

1. はじめにあなたのウェブサイトはまだインターネット上に公開されたままですか?ここでは、HTTPS...

CSS で背景ぼかし効果を実装するサンプルコード

以下のような効果でしょうか?もしそうなら、ぜひ読み進めてください! コードデモンストレーション(上の...

ウェブサイトレイアウトにおける CSS の計算関数 calc の例

calc は数値を計算するために使用される CSS 関数です。長さ、角度、時間などを計算できます。 ...

MySQLのダウンロードとインストールのプロセスの詳細な説明

1: MySqlをダウンロードする公式サイトのダウンロードアドレス: https://dev.mys...

Vueコンポーネント間のデータ共有の詳細な説明

目次1. プロジェクト開発において、コンポーネント間の最も一般的な関係は次の 2 つのタイプに分けら...