CSS 配置レイアウト (位置、配置レイアウト スキル)

CSS 配置レイアウト (位置、配置レイアウト スキル)

1. ポジショニングとは何ですか?

CSS の position 属性には、absolute/relative/fixed/static (absolute/relative/fixed/static (default)) の 4 つの値があります。positioning 属性を使用すると、不規則なレイアウトを設定したり、 TLBR (上、左、下、右)を使用して要素の位置を調整したりできます。

2. 各属性値の説明:

static (静的) には特別な設定はなく、基本的な配置規則に従い、z-index による階層化はできず、通常のフローの各要素にデフォルトの属性があります。相対オブジェクトは積み重ねたり、ドキュメント フローから分離したりすることはできず、上、下、左、右を使用して自身の静的位置を参照して配置されます。 Absolute(絶対配置)は、ドキュメントフローから外れ、上、下、左、右で配置されます。絶対配置には、最も多くの配置設定を持つ最も近い親オブジェクトを選択します。オブジェクトの親に配置属性が設定されていない場合、絶対要素はボディ座標の原点に配置されます。 fixed (固定位置) ここでの固定参照オブジェクトは、本体や親要素ではなく、表示されるウィンドウです。 fixed を使用する要素は、ウィンドウがスクロールしてもスクロールしません。絶対のサブセットに属します。

3. 各属性値の具体的な役割:

A.static: (静的、デフォルトプロパティ) 通常は使用されませんが、位置の値を他の値からデフォルトに変更したいシナリオがいくつかあります。

B.relative: (相対配置) 要素は position:relative で設定されます。テキストフローから外れないため、TLBR (上、左、下、右) が設定されていない場合、その位置は変更されず、現在のレイアウトには影響しません。つまり、何も起こらないのと同じです。 TLBR が設定されている場合、要素は指定された方向にオフセットできますが、元の位置は引き続き占有されます。例を図に示します。

図1: 子1の位置を相対的に設定

図2: 子1の位置を調整する 上: 20px 左: 20px

C.absolute: (絶対配置)、テキストフロー(通常フロー)から完全に外れ、元の位置は占有されなくなり、TLBR を任意に移動するように設定できます。

特記事項として、要素に absolute が設定されていて、その親要素に位置 (absolute/relative/fixed) が設定されていない場合、body がその親になります。

図1:

図2:

図3:

D.fixed : (固定位置)、ページと一緒にスクロールしません。ここには画像は掲載されません。最もわかりやすい例は、小さな Web 広告です。ページをスクロールしても、広告は常に Web ページの右側または左側に表示され、スクロールしたユーザーを追いかけます。

4. 配置レイアウトスキル: position: relative と position: absolute を一緒に使用します。

前述のように、要素に absolute が設定されていて、その親要素のいずれにも position:relative が設定されていない場合は、body がその親になります。この場合、要素を目的の位置に配置するのが難しくなり、ピクセルを測定するのが面倒になります。画像の説明:

図1: 初期状態

図 2: box-chd-chd の position: absolute を設定し、top: 0、left: 0 を設定します。親である body から左上隅を開始点として取得していることがわかります。

図3: ボックスの位置を相対的に設定すると、box-chd-chdがボックスを親として使用することがわかります。

図4: box-chdのposition: relativeを再度設定すると、box-chd-chdがbox-chdを親として取得していることがわかります。

子が position: absolute を設定し、その親が position: relative を設定すると、子は親要素の左上を開始点として移動し、近接原則に従います。つまり、子は上に向かって親を探し、relative を持つ最初の親が見つかったら、その左上を開始点として使用します。

相対と絶対の組み合わせにより、配置レイアウトがより便利になり、移動に必要な距離も短縮されます。本文からページ全体のピクセルを測定する必要はありません。管理も簡単で、構造も明確です。

要約: 前回の記事ではフロートレイアウトのテクニックについて説明しましたが、この章では位置について説明します。位置とフロートはどちらも一種のレイアウト方法であり、それぞれ独自の適用シナリオがあることがわかります。ニーズに応じてレイアウト方法を選択できます。

<<:  MySQLの浅いエントリと深いエグジットの原則についての簡単な説明

>>:  ラベルとスパンの幅設定が無効である問題の解決

推薦する

ウェブページ上の写真プレビューナビゲーションを設計するためのヒント

<br />ナビゲーションとは、ウェブサイトの上部にあることが多いナビゲーション バーの...

MySQLでorder byを使用せずにランキングを実装する3つの方法のまとめ

ビジネスを想定: 2位の従業員の給与情報を見るデータベースを作成する emps が存在する場合はデー...

Dockerでコンテナを作成するときにコンテナIPを指定する実装例

Docker はコンテナを作成するときに、デフォルトでブリッジ ネットワークを使用し、IP アドレス...

jsとcssのブロッキング問題の詳細な分析

目次DOMContentLoadedとロードjs ブロッキングとは何ですか? CSS ブロッキングと...

JavaScript で 9 グリッドのモバイル パズル ゲームを実装

この記事では、Jiugonggeモバイルパズルゲームを実装するためのJavaScriptの具体的なコ...

MySQL 8.0.3 RCがリリースされようとしています。変更点を見てみましょう。

MySQL 8.0.3がリリースされます。新機能を見てみましょうMySQL 8.0.3 は RC ...

React 手書きタブ切り替え問題

親ファイル React をインポートし、{useState} を 'react' か...

MySQL の自動増分 ID (主キー) が不足した場合の解決策

MySQL で使用される自動インクリメント ID には多くの種類があり、各自動インクリメント ID ...

MySQL 5.7.23 のインストールと設定のグラフィックチュートリアル

この記事では、mysql5.7.23 の詳細なインストールプロセスを記録し、皆さんと共有します。 1...

Ubuntu 20.04 に MySql5.7 をインストールして構成するための詳細なチュートリアル

目次1. Ubuntuソースの変更2. MySQLをインストールする3. 新しいユーザーを作成し、権...

MySQL共通インデックスとユニークインデックスの詳細な説明

シナリオ1. ID番号のフィールドを備えた市民システムを維持する2. ビジネス コードでは、重複する...

Ubuntu 18.04 で SSH サービスをインストールして設定する方法

sshツールをインストールする1. ターミナルを開き、次のコマンドを入力します。 apt-getアッ...

TypeScript 2.0 マーク付き共用体型の詳細な説明

目次タグ付きユニオン型を使用した支払い方法の構築タグ付きユニオン型を使用した Redux アクション...

MySQLカーソルの詳細な紹介

目次1. カーソルとは何ですか? 2. カーソルの使い方1. カーソルを宣言する2.カーソルを開く3...