検索
ホームページウェブフロントエンドhtmlチュートリアル相対と絶対を区別する_html/css_WEB-ITnose

彼らと言えば、誰もがよく知っているはずです。相対、相対位置、絶対、絶対位置。しかし、それらは一体何なのでしょうか?

w3c 定義を参照してください。以下の表を参照してください

位置

意味

相対

要素ボックスは特定のオフセットによってオフセットされています距離。要素は、配置されていない形状と元のスペースを保持します。

absolute

要素ボックスはドキュメント フローから完全に削除され、その要素ボックスを含むブロックに対して相対的に配置されます。包含ブロックは、文書内の別の要素または最初の包含ブロックである場合があります。通常のドキュメント フローで要素が以前に占めていたスペースは、その要素が存在しないかのように閉じられます。この要素は、通常のフローで最初に生成されたボックスの種類に関係なく、配置後にブロック レベルのボックスを生成します。

くそー、これを言うとちょっとぼんやりしてきます。

恐れることはありません、団結は強さです、一緒に段階的に分析しましょう。

1. 相対

上記の相対の w3c 定義を考慮して、まずデモを作成しましょう。

<!DOCTYPE html>    <head>        <title>ttt</title>        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>        <style>                * {                margin:0;                padding:0;            }            .ourRelative {                border:1px solid #FF0000;                position:relative;                left:-10px;            }            </style>    </head>    <body>        I'm <span class="ourRelative">relative</span>,I'm over!    </body></html>

レンダリングは次のとおりです:

コードと組み合わせると、位置を設定することで「相対的に」 10 ピクセル左に移動したことに気づいたかどうかわかりませんが、何でしょうか?右側の空いたスペースは、右側の「、終わりました!」によって圧迫されていないことがわかります。それはどういう意味ですか?

1. 相対的に配置された要素は通常のフロー内にあります。

2. 相対的に配置された要素は、left、right、top、およびbottom 属性によって相対的にオフセットされます。要素がオフセットされても、元の要素が占めていたスペースはそのまま保持されます。

上記のコードでは、テキスト「relative」を囲むために 要素を使用していることに気づいたかどうかわかりませんが、これは何を意味するのでしょうか?

推測:position:relative は要素の表示を変更しません。

デモを書いているときに濡れてしまいましたね。

<!DOCTYPE html>    <head>        <title>ttt</title>        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>        <style>                * {                margin:0;                padding:0;            }            .ourRelative {                /*将宽高设置为100px*/                width:100px;                height:100px;                border:1px solid #FF0000;                position:relative;                left:-10px;            }            </style>    </head>    <body>        I'm <span class="ourRelative">relative</span>,I'm over!    </body></html>

上記のコードにspan要素の幅と高さを追加しましたが、インライン要素の効果はまだ表示されています。

納得できないですか?

上記のコードを再度変更し、スパン表示をインラインブロックに変更したまま、幅と高さは 100 ピクセルに設定されているため、このように表示されます。

<!DOCTYPE html>    <head>        <title>ttt</title>        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>        <style>                * {                margin:0;                padding:0;            }            .ourRelative {                /*将元素的span变为inline-block*/                display:inline-block;                width:100px;                height:100px;                border:1px solid #FF0000;                position:relative;                left:-10px;            }            </style>    </head>    <body>        I'm <span class="ourRelative">relative</span>,I'm over!    </body></html>

position:relative は要素の表示を変更しないことを説明してください。

2. Absolute

上記の w3c の絶対の定義を考慮して、デモも書いてみましょう。図 1 の を絶対位置 (position:absolute) に変更するだけです。

<!DOCTYPE html>    <head>        <title>ttt</title>        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>        <style>                * {                margin:0;                padding:0;            }            .ourRelative {                border:1px solid #FF0000;                /*将position改为absolute*/                position:absolute;                left:-10px;            }            </style>    </head>    <body>        I'm <span class="ourRelative">relative</span>,I'm over!    </body></html>

なんてことだ、これは一体何だ。どうして。ちょっと待って、測定して何が起こっているのか見てみましょう。以下の図を参照してください。

図 1 は、span 要素全体の幅を示しており、80 ピクセルであることがわかります。要素の幅(可能な限り)ほら、70 ピクセルです。

したがって、絶対的な位置決め、ここでは体の左上隅に基づいています。

なぜですか?

絶対配置では、left、right、top、bottom 属性を使用して、最も多くの配置設定で最も近い親オブジェクトを基準とした絶対配置が実行されるため、オブジェクトの親が配置属性を設定していない場合、そのためです。 HTML の配置ルールに従う場合は、body オブジェクトの左上隅を基準に配置されます。

ここにはspan要素が1つしかなく、その親要素がbodyであるためです。だからこそこのパターンが現れるのです。

そして、w3cが言ったように、絶対配置はドキュメントフローから分離されているため、絶対配置要素「,I'm over!」の右側のテキストは、それが存在しないかのように扱われ、その位置を占めます。

ねえ、相対配置では要素の表示は変わりませんが、絶対配置ではどうなるでしょうか?

絶対配置により要素の表示が変更されます。それらをブロック (ブロックレベル要素のモード) に統合します。

信じられないですか?次に、上記の絶対位置コードを一緒に改良して、span 要素の幅と高さをそれぞれ 100 ピクセルに設定しましょう。

<!DOCTYPE html>    <head>        <title>ttt</title>        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>        <style>                * {                margin:0;                padding:0;            }            .ourRelative {                border:1px solid #FF0000;                /*将position改为absolute*/                position:absolute;                /*为absolute添加width和height*/                width:100px;                height:100px;                left:-10px;            }            </style>    </head>    <body>        I'm <span class="ourRelative">relative</span>,I'm over!    </body></html>

レンダリングを以下に示します。

くそー、絶対配置は非常にクールなようです。要素の表示を直接変更し、要素をブロックに統合します。

セクション:

1. 絶対配置後の要素はドキュメント フローから外れ、元のスペースは存在しません。

2. 絶対配置後の要素。オブジェクトの親が位置属性を設定していない場合、つまり HTML 位置規則に従っている場合、位置は本文オブジェクトの左上隅に基づいて決定されます。参考として;

3. 絶対配置された要素の場合、要素の表示はブロックに変更されます。

もう 1 つ:

要素が相対位置に設定されているか絶対位置に設定されているかに関係なく、他の要素の内容もカバーされます。これは何を意味しますか?

position:absoluteを例に挙げます

<!DOCTYPE html>    <head>        <title>ttt</title>        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>        <style>                * {                margin:0;                padding:0;            }            .normal {                width:100px;                height:100px;                background:#FFC0CB;            }            .ourAbsolute {                width:70px;                height:70px;                position:absolute;                background:#008000;                left:0;                top:0;            }            </style>    </head>    <body>        <div class="normal"></div>        <div class="ourAbsolute"></div>    </body></html>

下の写真をご覧ください

緑色のボックスを絶対位置に設定し、上と左の両方が0になります。次に、本体から開始してピンクのボックスを覆います。絶対に配置された緑色のボックスをピンクのボックスで覆いたい場合はどうすればよいですか?これは非常に簡単で、絶対位置の z-index を 0 に設定するだけで機能します。

相対的な位置を設定するためにコードを自分で変更してテストしてください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
HTML対CSS対JavaScript:比較概要HTML対CSS対JavaScript:比較概要Apr 16, 2025 am 12:04 AM

Web開発におけるHTML、CSS、およびJavaScriptの役割は次のとおりです。HTMLはコンテンツ構造を担当し、CSSはスタイルを担当し、JavaScriptは動的な動作を担当します。 1。HTMLは、セマンティクスを確保するためにタグを使用してWebページの構造とコンテンツを定義します。 2。CSSは、セレクターと属性を介してWebページスタイルを制御して、美しく読みやすくします。 3。JavaScriptは、動的でインタラクティブな関数を実現するために、スクリプトを通じてWebページの動作を制御します。

HTML:それはプログラミング言語か何か他のものですか?HTML:それはプログラミング言語か何か他のものですか?Apr 15, 2025 am 12:13 AM

htmlisnotaprogramminglanguage; itisamarkuplanguage.1)htmlStructuresandformatswebcontentusingtags.2)ItworkswithcsssssssssdjavascriptforInteractivity、強化を促進します。

HTML:Webページの構造の構築HTML:Webページの構造の構築Apr 14, 2025 am 12:14 AM

HTMLは、Webページ構造の構築の基礎です。 1。HTMLは、コンテンツ構造とセマンティクス、および使用などを定義します。タグ。 2. SEO効果を改善するために、などのセマンティックマーカーを提供します。 3.タグを介したユーザーの相互作用を実現するには、フォーム検証に注意してください。 4. JavaScriptと組み合わせて、動的効果を実現するなどの高度な要素を使用します。 5.一般的なエラーには、閉じられていないラベルと引用されていない属性値が含まれ、検証ツールが必要です。 6.最適化戦略には、HTTP要求の削減、HTMLの圧縮、セマンティックタグの使用などが含まれます。

テキストからウェブサイトへ:HTMLの力テキストからウェブサイトへ:HTMLの力Apr 13, 2025 am 12:07 AM

HTMLは、Webページを構築するために使用される言語であり、タグと属性を使用してWebページの構造とコンテンツを定義します。 1)htmlは、などのタグを介してドキュメント構造を整理します。 2)ブラウザはHTMLを分析してDOMを構築し、Webページをレンダリングします。 3)マルチメディア関数を強化するなど、HTML5の新機能。 4)一般的なエラーには、閉じられていないラベルと引用されていない属性値が含まれます。 5)最適化の提案には、セマンティックタグの使用とファイルサイズの削減が含まれます。

HTML、CSS、およびJavaScriptの理解:初心者向けガイドHTML、CSS、およびJavaScriptの理解:初心者向けガイドApr 12, 2025 am 12:02 AM

webdevelopmentReliesOnhtml、css、andjavascript:1)htmlStructuresContent、2)cssStylesit、および3)Javascriptaddsinteractivity、形成、

HTMLの役割:Webコンテンツの構造HTMLの役割:Webコンテンツの構造Apr 11, 2025 am 12:12 AM

HTMLの役割は、タグと属性を使用してWebページの構造とコンテンツを定義することです。 1。HTMLは、読みやすく理解しやすいようなタグを介してコンテンツを整理します。 2。アクセシビリティとSEOを強化するには、セマンティックタグなどを使用します。 3. HTMLコードの最適化により、Webページの読み込み速度とユーザーエクスペリエンスが向上する可能性があります。

HTMLとコード:用語を詳しく見るHTMLとコード:用語を詳しく見るApr 10, 2025 am 09:28 AM

htmlisaspecifictypeofcodefocuseduructuringwebcontent

HTML、CSS、およびJavaScript:Web開発者に不可欠なツールHTML、CSS、およびJavaScript:Web開発者に不可欠なツールApr 09, 2025 am 12:12 AM

HTML、CSS、およびJavaScriptは、Web開発の3つの柱です。 1。HTMLは、Webページ構造を定義し、などなどのタグを使用します。2。CSSは、色、フォントサイズなどのセレクターと属性を使用してWebページスタイルを制御します。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター