CSS 位置プロパティが絶対の場合のパーセンテージ値の計算

CSS 位置プロパティが絶対の場合のパーセンテージ値の計算

位置が絶対の場合、関連する属性のパーセンテージは、参照先の要素 (包含ブロック) を基準として計算され、位置がレンダリングされます。

まず、次のことを知っておく必要があります。

1. [パーセンテージ参照][1]:

包含ブロックに基づいてパーセンテージを計算する: (1) 要素の margin/padding/left/right/width は包含ブロックの幅を参照して計算されます。 (2) height/top と bottom のパーセンテージを計算するには、包含ブロックの高さが使用されます。包含ブロックの高さがその内容に基づいて変化し、包含ブロックの位置プロパティに relative または static の値が割り当てられている場合、これらの値は 0 に計算されます。

2. [包含ブロックを決定する][2]:

要素の包含ブロックを決定するプロセスは、要素の位置プロパティに完全に依存します。

(1)位置プロパティが静的または相対的である場合、包含ブロックは、最も近い「祖先ブロック要素」(インラインブロック、ブロック、リスト項目要素など)またはフォーマットコンテキスト(テーブルコンテナ、フレックスコンテナ、グリッドコンテナ、ブロックコンテナ自体など)のコンテンツ領域の端で構成されます。

(2)位置プロパティが絶対値の場合、包含ブロックは、位置値が静的でない(つまり、値が固定、絶対、相対、またはスティッキーである)最も近い祖先要素のパディング領域(パディング左+コンテンツ+パディング右)の端から構成されます。

<!DOCTYPE html>
<html lang="ja">
<ヘッド>
    <スタイル>
     体 {
  色: オレンジ;
}
div {

  位置: 絶対; 
  /*box-sizing: border-box; /*content=(width-border-padding)追加する場合 box-sizing: border-box;; width=content 追加しない場合 */*/
  幅: 400ピクセル;
  境界線: 5px 実線オレンジ;
  パディング: 50px;
  高さ: 160px;
  背景: ライトグレー;
}

p {
  position: absolute; /* 包含ブロックは、最も近い祖先要素(ブロック要素である場合もそうでない場合もある)のパディング エッジ(pa​​dding-left + content + padding-right)で構成されます。
  幅: 50%; /* == (50+400+50)px * 50% = 250px */
  高さ: 25%; /* == (50+160+50)px * 25% = 65px */
  マージン: 5%; /* == (50+400+50)px * 5% = 25px */
  境界線: 5px 実線オレンジ;
  パディング: 5%; /* == (50+400+50)px * 5% = 25px */
  背景: ピンク;
  色: 緑;
}
/*p {
   /* 包含ブロックは、最も近い祖先ブロック要素(ブロック要素のみ可能)または書式設定コンテキストのコンテンツ領域の端(コンテンツ)で構成されます。
  幅: 50%; /* == 400px * 50% = 200px */
  高さ: 25%; /* == 160px * 25% = 40px */
  マージン: 5%; /* == 400px * 5% = 20px */
  境界線: 5px 実線オレンジ;
  パディング: 5%; /* == 400px * 5% = 20px */
  背景: ピンク;
  色: 緑;
}*/
    
    </スタイル>
</head>
<本文>
    <div>
        <p>これは段落です!</p>
    </div>
</本文>
</html> 

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

<<:  MySQLインデックスの作成について知っておくべきこと

>>:  ウェブデザインレイアウトの理解

推薦する

タブ切り替えを実装するための HTML サンプル コード

タブ切り替えもプロジェクトではよく使われる技術です。一般的にタブ切り替えはjsやjqを使って実装され...

Ubuntu16.04はphp5.6ウェブサーバー環境を構築します

Ubuntu 16.04 はデフォルトで PHP7.0 環境をインストールしますが、PHP7 は一部...

Windows Server 2008R2、2012、2016、2019 の違い

目次共通バージョンの紹介共通バージョンのダウンロードアドレスとインストール以下に簡単な違いを示します...

CSS でのナビゲーション バーとドロップダウン メニューの実装

1. CSSナビゲーションバー(1)ナビゲーションバーの機能ナビゲーション バーを使いこなすことは、...

Linux にバイナリ MySQL をインストールして MySQL パスワードをクラックする方法

1. システムに必要な libaio ソフトウェアがインストールされていることを確認します。インスト...

HTML ページ ソース コード レイアウトの概要_Powernode Java Academy

HTML ページ ソース コード レイアウトの概要この紹介では、Google のホームページのソー...

JavaScript継承のさまざまな方法とメリット・デメリットを詳しく解説

目次1. プロトタイプチェーン継承2. コンストラクタの借用(古典的な継承) 3. 組み合わせ継承4...

W3Cチュートリアル(1):W3Cを理解する

1994 年に設立された組織である W3C は、共通プロトコルの開発を促進し、それらの相互運用性を確...

Tcl言語に基づくシンプルなネットワーク環境を構成するプロセスの分析

1. Tclスクリプトファイルcircle.tclコードコメント #シミュレーションに必要なプロパテ...

JS はシンプルな todoList (メモ帳) 効果を実装します

メモ帳プログラムは、HTML + CSS + JavaScript の 3 つの主要なフロントエンド...

MySQLのユーザー権限の確認と管理方法の詳細な説明

この記事では、例を使用して、MySQL ユーザー権限を確認および管理する方法を説明します。ご参考まで...

CSS でフロートとマージンを混合するサンプルコード

最近の勉強で、GitHub でレイアウトの練習をいくつか見つけたのですが、レイアウトにまったく慣れて...

docker に openjdk をインストールして jar パッケージを実行する方法

画像をダウンロード docker プル openjdkデータボリュームの作成java_appデータボ...

JavaScript が Jingdong の虫眼鏡効果を模倣

この記事では、Jingdongの虫眼鏡効果を実現するためのJavaScriptの具体的なコードを紹介...

フロントエンドに必要なNginx設定の詳細な説明

Nginx (エンジン x) は、軽量で高性能な HTTP およびリバース プロキシ サーバーであり...