ページに間隔を空けてグリッドレイアウトを完璧に実装する方法

ページに間隔を空けてグリッドレイアウトを完璧に実装する方法

典型的なレイアウト例

上の写真のように、正方形の真ん中に一定の隙間があり、その隙間は固定されています。レイアウトをより完璧にするにはどうすればよいでしょうか。たとえば、レイアウトが完成したら、同じレイアウトを維持するために要素をすばやく追加することができます。 2 行目が表示されても、このレイアウトは影響を受けません。コンテンツを過度に変更する必要はありません。

幅を100%に設定し、ブロック要素のデフォルトの幅を設定します。

ここで問題について話しましょう。ブロック要素のデフォルトの幅は 1 行を埋めることになっていますが、これは要素に 100% を設定することと簡単に混同される可能性があります。実際には、両方の方法が親要素全体を占有するため、これら 2 つの方法の効果は同じであると考えるのは簡単です。しかし、両者の間にはまだ大きな違いがあります。
これらの主な違いは、要素の幅がどのように変化するかにあります。100% に設定すると、要素の幅は常に親要素と一致し、要素に設定されたマージンは要素の幅の変化に影響しません。もちろん、この要素の幅の変更に影響するのは親要素の幅のみです。幅が設定されていない場合、ブロック要素は 1 行を占め、要素の幅は親要素だけでなく要素の余白によっても影響を受けます。

1行を占めるブロック要素の幅に対するマージン設定の影響

次の2つのルールを覚えておいてください

  • 幅が設定されていないブロックレベル要素にマージン (水平方向) が設定されている場合、マージン値 (正の値) と要素の幅の合計は親要素の幅と等しくなります。
  • 幅が設定されていないブロックレベル要素にマージン (水平方向) が設定されている場合、マージン値 (負の値) は、要素の幅が親要素を超える距離とまったく同じになります。

次の図に示すように:

ルール1の例:

ルール2の例:

解決

平均面積を分割する

まず、水平領域を 5 等分して水平に配置します。次に、フローティング水平配置を使用して、各要素を平均 20% に設定します。

<ul class="リスト">
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
</ul>


。リスト{
 オーバーフロー: 非表示;
}
.リスト li{
 幅: 20%;
    高さ: 100px;
    フロート: 左;
}

各エリアにコンテンツを配置し、margin-rightを使用してスペースを作成します。

<ul class="リスト">
  <li>
   <div class="content"></div>
  </li>
  <li>
   <div class="content"></div>
  </li>
  <li>
   <div class="content"></div>
  </li>
  <li>
   <div class="content"></div>
  </li>
  <li>
   <div class="content"></div>
  </li>
</ul>
。リスト{
 オーバーフロー: 非表示;
}
.リスト li{
 幅: 20%;
    高さ: 100px;
    フロート: 左;
}
。コンテンツ{
 右マージン: 10px;
}

この時点で、最後の要素には 10 ピクセルの間隔が追加されていることが想像できます。最後のステップは、この間隔の問題を解決する方法です。

親要素を引き伸ばして、端の隙間を隠す

リストに別の要素を追加して、リストが親要素の下に伸び、余分な部分だけを隠すようにします。

<div class="wrapper">
  <ul class="リスト">
    <li>
      <div class="content"></div>
    </li>
    <li>
      <div class="content"></div>
    </li>
    <li>
      <div class="content"></div>
    </li>
    <li>
      <div class="content"></div>
    </li>
    <li>
      <div class="content"></div>
    </li>
  </ul>
</div>
.ラッパー{
 幅: 800ピクセル;
    オーバーフロー: 非表示;
}
。リスト{
 オーバーフロー: 非表示;
    右マージン: -10px;
}
.リスト li{
 幅: 20%;
    高さ: 100px;
    フロート: 左;
}
。コンテンツ{
 右マージン: 10px;
}

実際の効果を確認し、冒頭で示した効果を最終的に達成できます。このレイアウト方法には多くのスケーラビリティがあります。 1 行に 4 つの要素がある場合、各要素の幅を 25% に設定し、要素の数から 1 を引くだけで済みます。

これで、ページ間にスペースのあるグリッドレイアウトを完璧に実装する方法についての記事は終了です。ページ間にスペースのあるグリッドレイアウトの詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

<<:  Linux コマンドライン操作 Baidu クラウドのファイルのアップロードとダウンロード

>>:  Vueライフサイクルカメラの8つのフック関数

推薦する

mysql8.0.19 でパスワードを忘れた場合の完璧な解決策

おすすめの読み物: MySQL 8.0.19 は、間違ったパスワードを 3 回入力するとアカウント ...

フォーム検証機能を実装するためのネイティブ js

目次開発の際には、機能を段階的に分析して実装することで、明確な考え方を保つことができます。 1. フ...

Linux dirnameコマンドの具体的な使い方

01. コマンドの概要dirname - ファイル名からディレクトリ以外のサフィックスを削除しますd...

vue-element-adminフレームワークを使用して、バックエンドからメニュー機能を動的に取得します。

目次2. 詳しい説明2.1. asyncRoutesルーティングを追加する2.2. 新しいpermi...

VMware15.5 インストール Ubuntu20.04 グラフィック チュートリアル

1. インストール前の準備1. 公式ウェブサイトからUbuntu 20.04のイメージファイルを直接...

Axiosは繰り返しのリクエストをキャンセル

目次序文1. リクエストをキャンセルする方法2. 重複リクエストの判定方法3. 繰り返しリクエストを...

MySQL 8.0 が起動できない 3534 の解決策

MySQL 8.0 サービスを開始できません最近、 cmdで MySQL サービスを起動するときに遭...

vue3 watch と watchEffect の使い方と違い

1.リスナーを見る時計のご紹介 'vue' から { ref, reactive, ...

CSSはインラインブロックのずれの問題を解決します

もうナンセンスじゃない、郵便番号HTML部分 <div class="positio...

Vueはツリーテーブルを実装する

この記事では、ツリーテーブルを実装するためのVueの具体的なコードを例として紹介します。具体的な内容...

Mysql の主キー インデックスと非主キー インデックスの違いについて簡単に説明します。

目次インデックスとは何か主キーインデックスと通常のインデックスの違いインデックスにはどのデータ構造が...

npm グローバル モジュールのデフォルトのインストール パスを変更するためにノードのインストールをカスタマイズする手順

node を D ドライブにインストールしましたが、C ドライブのスペースを占有したくなかったため、...

JVMシリーズのメモリモデルの詳細な説明

目次1. メモリモデルとランタイムデータ領域2. マインドマップと凡例3. オブジェクトはJVMから...

ショートビデオ(Douyin)の透かし除去ツールの実装コード

目次1. まず最初のリンクを取得する2. ブラウザでこのリンクを開いてください3. アドレスを開くと...

MySQL 5.7.17 winx64 のインストールと設定のチュートリアル

今日、MySQL データベースをコンピューターに再度インストールしました。システムを再インストールす...