フロントエンドが習得すべき、複数列の等高レイアウトを実現するための CSS テクニック

フロントエンドが習得すべき、複数列の等高レイアウトを実現するための CSS テクニック

1. はじめに

ページを作成しているときに、複数列のレイアウトに遭遇することがあります。各列の内容が異なる場合があり、各列の実際の高さが異なります。各列に背景色が付いていると、各列の下部がずれてしまい、ユーザー エクスペリエンスが悪くなります。

実際の問題の影響は次のとおりです。

2. 要件は次のとおりです

達成したい効果は、各列の実際の内容に関係なく、各列が確実に整列されるようにすることです。

3. 解決方法

HTML コードは次のとおりです。

<ul class="記事">
    <li class="js-equalheight">
      <p>
      顧客の利益を第一に考えるブローカー。
      顧客に専門的な取引ツールを提供する顧客の利益を最優先するブローカー。
      顧客に専門的な取引ツールを提供する顧客の利益を最優先するブローカー。
      顧客に専門的な取引ツールを提供する 顧客の利益を第一に考え、顧客に専門的な取引ツールを提供するブローカー</p>
    </li>
    <li class="js-equalheight">
      <p>顧客の利益を第一に考え、顧客に専門的な取引ツールを提供するブローカー。顧客の利益を第一に考え、顧客に専門的な取引ツールを提供するブローカー。</p>
    </li>
    <li class="js-equalheight">
      <p>顧客の利益を第一に考えるブローカー</p>
    </li>
  </ul>

(1)純粋なCSSソリューション

CSS コードは次のとおりです。

。記事{
  オーバーフロー: 非表示;
}

.記事>li{
  フロート: 左;
  マージン: 0 10px -9999px 0;
  パディング下部: 9999px;
  背景: #4577dc;
  幅: 200ピクセル;
  色: #fff;
}

.記事>li>p{
  パディング: 10px;
}

分析と説明:要素のpadding-bottomはできるだけ大きくし、padding-bottomによって拡大された領域を相殺するために、同じサイズの負のmargin-bottom値を設定する必要があります。正の値と負の値は互いに相殺し、ページレイアウトに影響を与えません。さらに、子要素の余分なカラーブロックの背景を非表示にするには、親要素に overflow: hidden を設定する必要があります。上記の CSS ソリューションには互換性の問題がないため、安心して使用できます。

(2)jsソリューション

js コードは次のとおりです。

jQuery(ドキュメント).ready(関数() {
  等しい高さ();
});

jQuery(ウィンドウ).resize(関数() {
  jQuery('.js-equalheight').css('height','auto');
  等しい高さ();
});

関数equalheight() {
  var heights = jQuery(".js-equalheight").map(function() {
    jQuery(this).height() を返します。
  })。得る()、

  maxHeight = Math.max.apply(null、高さ);

  jQuery(".js-equalheight").height(maxHeight);
}

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

<<:  Centos7 に MySQL 8.0.23 をインストールする手順 (初心者レベル)

>>:  Reactはconetxtを通じてマルチコンポーネント値転送関数を実装します

推薦する

マークアップ言語 - テキストの CSS スタイルを指定する

123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...

MySQL における UNION と UNION ALL の基本的な使い方

データベースでは、UNION キーワードと UNION ALL キーワードの両方が 2 つの結果セッ...

MySQL Truncate の使用方法の詳細な説明

目次MySQL 切り捨ての使用1. 構文を切り捨てる2. Truncateの使用上の注意3. TRU...

MySQLの自己接続と結合の詳細な理解

1. MySQL 自己接続MySQL では、情報を照会するときに自分自身に接続 (自己接続) する必...

MySQL における EXISTS と IN の使用法の比較

1. 使用法: (1)EXISTSの使用 ucsc_project_batch a から、存在する場...

NavicatがMySQL8.0.11に接続するとエラー2059が発生する

間違いNavicat Premium を使用して MySQL に接続すると、次のエラーが発生します。...

nginx 設定ファイルで環境変数を使用する方法

序文Nginx はパフォーマンスを重視して設計された HTTP サーバーです。Apache や li...

SpringbootはDockerデプロイメントを統合し、Dockerイメージを構築する2つの方法を実装します。

Docker は、あらゆるアプリケーション用の軽量でポータブルな自己完結型コンテナーを簡単に作成で...

Vueはechartsを使用して組織図を描画します

昨日、円形のプログレスバー (Vue 円形プログレスバーを参照してください) についてブログを書きま...

収集する価値のあるCSS命名規則(ルール) よく使われるCSS命名規則

CSS命名規則(ルール) よく使われるCSS命名規則ヘッダー: ヘッダーコンテンツ: コンテンツ/コ...

JS で単一ファイルコンポーネントを実装する方法

目次概要単一ファイルコンポーネント基本概念シンプルなローダーコンポーネントコンテンツの解析コンポーネ...

VMware Workstationはデバイス/資格情報ガードと互換性がありません

仮想マシンをインストールするときに、「VMware ワークステーションはデバイス/資格情報ガードと互...

MySQL 外部キー制約の無効化と有効化コマンド

MySQL 外部キー制約の無効化と有効化: MySQL 外部キー制約が有効になっているかどうかは、グ...

MYSQL接続ポートが占有され、ファイルパスエラーが発生する問題を解決します

今朝、私は Wampserver を使用してローカルの win7 マシン上に PHP 環境を構築し、...