フロントエンドが習得すべき、複数列の等高レイアウトを実現するための 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を通じてマルチコンポーネント値転送関数を実装します

推薦する

overflow:autoの使い方の詳しい説明

本文に入る前に、オーバーフローとフレックスレイアウトの使い方をいくつか紹介します。 overflow...

Vueはプログレスバーの変更効果を実現します

この記事ではVueを使ってプログレスバーの変更を簡単に実装してみましたので参考にしてください。具体的...

Vueナンバープレート検索コンポーネントの使い方の詳しい説明

参考までに、シンプルなナンバープレート入力コンポーネント(vue)です。具体的な内容は次のとおりです...

MySQLコマンドラインでSQLファイルを実行するいくつかの方法

目次最初の方法: MySQLデータベースが接続されていない場合2 番目の方法: データベースがすでに...

Win10 インストール Linux システム チュートリアル ダイアグラム

Windows システムに仮想マシンをインストールするには、 VMware Workstationソ...

Linux インストール Apache サーバー構成プロセス

袋を用意するインストールApacheがすでにインストールされているかどうかを確認するrpm -qa ...

Windows に MySQL 5.7.18 の解凍バージョンをインストールするチュートリアル

1. インストールプロセスMySQL バージョン: 5.7.18 1. my.ini ファイル(簡易...

WebデザイナーがRetinaディスプレイデバイス向けの画像を作成する方法

特記事項:この記事は、Chris Spooner の英語記事「Web デザイン用の Retina グ...

JSはオンラインでのアナウンスのスクロール効果を実現します

この記事では、オンラインアナウンスのスクロール効果を実現するためのJSの具体的なコードを参考までに共...

Nginx の add_header ディレクティブに注意する必要があるのはなぜですか?

序文ご存知のとおり、nginx 構成ファイルは add_header ディレクティブを使用して応答ヘ...

Dockerがコンテナを作成した後にホスト名を変更する詳細なプロセス

後悔を癒す薬は世の中にある、考えてみる気さえあれば!コンテナを再作成する必要はもうありません。 m2...

MySQL 整合性制約の定義と例のチュートリアル

目次整合性制約整合性制約の定義整合性制約の分類主キー制約単一の主キーと複合主キーの違い主キーフィール...

MySQLデータベースのマスタースレーブ同期の実際のプロセスの詳細な説明

目次インストール環境の説明MySQLデータベースサービスをインストールするメインライブラリを構成する...

写真をアップロードして顔を認識する Vue+axios サンプルコード

目次Axios リクエストQs処理データ分析Vantアップロードファイル形式完全なコードこの記事では...

ウェブデザインの発展と西洋建築の類似点は何でしょうか?

歴史は常に驚くほどうまく繰り返される。西洋建築とウェブデザインは、どちらも工学と芸術の組み合わせです...