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インデックスの作成について知っておくべきこと

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

推薦する

Linux コマンドラインで電卓を使用する 5 つのコマンド

みなさんこんにちは。私は梁旭です。 Linux を使用するときに、計算を行う必要がある場合があり、そ...

Explainキーワードに基づいてMySQLインデックス機能を最適化する方法

EXPLAIN は、MySQL がインデックスを使用して選択ステートメントを処理し、テーブルを結合す...

MySQL マスタースレーブレプリケーションの原理からインストールと設定までを包括的に解説します。

マスタースレーブレプリケーションがなぜ必要なのでしょうか? 1. 複雑な業務システムでは、SQL 文...

WeChatミニプログラムの開発をスピードアップするためのヒント

1. app.jsonを使用してページを作成する私たちの通常の開発習慣によれば、新しいページを作成す...

Vite2+Vue3を使用してMarkdownドキュメントをレンダリングする練習

目次カスタム Vite プラグインvite-plugin-markdownの使用Front Matt...

Vue の get リクエストと post リクエストの違いのまとめ

このチュートリアルの動作環境: Windows 7 システム、vue 2.9.6 バージョン、DEL...

Java を Mysql バージョン 8.0.18 に接続する方法の詳細な説明

JavaとMysql 8.0.18バージョンの接続方法については、参考までに具体的な内容は以下のとお...

JSはユーザー登録インターフェース機能を実装します

この記事の例では、ユーザー登録インターフェース機能を実装するためのJSの具体的なコードを参考までに共...

HTMLのインライン要素とブロックレベル要素とは何か、またそれらの違いは何ですか

以前の就職面接で面接官が尋ねた質問を覚えています。「インライン要素とは何ですか。ブロックレベル要素と...

CSS3 border-radius 丸角の実装方法と使い方の詳しい説明

以前は、角を丸くするのは非常に面倒でしたが、CSS3 では、角を丸くするのは非常に簡単になり、bor...

CSS最適化スキルの自己実践体験

1. CSS スプライトを使用します。利点は、CSS で使用される小さな画像を 1 つの大きな画像に...

MySQLクエリ条件のnot inとinの違いと理由

まずSQLを書く SELECT DISTINCT from_id タラから cod.from_id ...

gorm で MySql データベースを操作する方法

1. テーブル内のフィールドの大文字と小文字の区別を設定するgorm クエリを使用する場合、MySQ...

CSS を使用して画像の色を変更する 100 の方法 (収集する価値あり)

序文「画像処理というと、PhotoShop などの画像処理ツールを思い浮かべることが多いです。フロン...

DockerはRedisをインストールし、操作用のビジュアルクライアントを導入します

1 はじめにRedis 、 ANSI C言語で開発されたKey-Valueベースの高性能NoSQLデ...