Web フロントエンド面接の質問 8 - 絶対位置と相対位置
相対位置 (relative):
まず相対位置について話しましょう: その名前のとおり、相対、参照オブジェクトが存在する必要がありますが、この参照は他ではなく、元のドキュメント フロー内での独自の位置です。相対配置後の オブジェクト はドキュメント フローから完全に分離されておらず、ドキュメント内のオブジェクトの元の位置は保持され、オフセットされたオブジェクトは 他の レイヤーを覆います。
相対的な配置の特徴は次のように要約されます:
①相対的に配置された要素の場合、幅が設定されていない場合、幅はブラウザ全体の幅になるか、親要素の幅に依存します。
②相対的に配置されたブロック要素は、移動後もドキュメントフローの位置を占め、他の要素のレイアウトには影響しません
以下のコードで確認してください。ブラウザに 5 を配置します。ボックスは異なる色で表されます。コードは次のとおりです
HTML コード
CSS コード
初期レンダリング
3 番目 各ボックスの相対的な位置を設定します
要素は元の位置に対してオフセットされ、幅と高さは変更されません。コンテナーを拡張し、元の位置を占めます。他の要素のレイアウトには影響しません。
絶対配置 (絶対): 絶対配置されたオブジェクトはドキュメントフローから切り離され、絶対配置の基準位置はそれ自体ではなくなります。は、その親オブジェクトまたは上位オブジェクトが配置されているかどうかによって異なります。
left、right、top、bottom、およびその他の 属性を使用して、相対または絶対配置設定で最も近い親オブジェクトを基準とした絶対位置を作成します。位置決め、親オブジェクトがpositioning属性を設定していない場合、htmlルート要素に相対的に配置されます。いくつかの投稿を読んだ後、親オブジェクトがpositioning属性を設定していない場合は、配置されると考えている人がいることがわかりました。本体に対して相対的に配置されています。このステートメントは間違っています。 絶対配置の特徴をまとめると以下の通りです
①絶対配置されたブロック要素の幅が設定されていない場合、幅は要素内の内容によって決まります②切り離した後の元の位置は等価です次の要素が位置を占めます
③絶対配置オブジェクトは、相対配置または絶対配置に設定されている最も近い親オブジェクトを基準にして配置されます
④親要素が配置されていない場合は、配置されますHTML ルートを基準とした要素の位置決め
以下は、これら 5 つのボックスのオフセットによって引き続き検証されます
(1) ブロック要素にはオフセット値がありません
上記の 5 つのボックスでは、box5 のみに絶対位置が与えられます。オフセット値。この時点では、ブロック要素は元の位置に浮かんでいるだけです。その後ろにブロック要素がある場合、その位置がボックス 5 の下に追加されて、その効果を確認してみましょう。
注: 絶対位置のブロック要素の幅が定義されていない場合、幅は要素内のコンテンツによって決まります。
効果の画像は次のとおりです
ボックス6を追加する効果
写真からもわかるように、 box6 は、その位置のドキュメント フローで box5 を占有しています。
(2) オフセット値があります
オフセット値が設定されており、親要素が相対位置または絶対位置を設定していない場合、要素はルート要素 (つまり、html 要素) を基準に位置決めされます。ボディに対する相対ではなく、ルート要素に対する相対) box5 のオフセットを使用して確認します。
①ボックス5にオフセットを与えます。親要素には相対的または絶対的な位置がありません
効果の図は次のとおりです
②ボックス5に同じオフセットを与え、ボディに与えます要素は絶対配置されます (body 要素は絶対に設定され、絶対配置されたブロック要素の幅は最も長い p によって決定され、幅は小さくなります):
効果画像は次のとおりです。以下の通り
写真アプリから送信
上記の 2 つのレンダリングから、ルート要素に対する相対的な位置が本体に対する相対的な位置と異なることは明らかです。主な違いは、本体のマージン値が含まれます。
次に、5 つのボックスの外側にさらに 3 つの親ボックスをネストし、これら 3 つの親ボックスに位置を与えて、最後に配置された親要素に基づいてオフセットされているかどうかを確認します。
コードは次のとおりです
HTMLコード
CSSコード
レンダリング
アプリから送信された写真
from 上記から、box5 がそれに最も近いコンテナである 3 層目のコンテナを基準にして配置されていることが明らかです。興味があれば、第 3 層のコンテナの位置を削除して、第 2 層のコンテナと相対的に配置されているかどうかを確認してみてください。画像は掲載しません。
なぜ一番外側のボックスが絶対配置に設定され、他の 2 つのボックスが相対配置に設定されるのか疑問に思う人もいるでしょう。この配置方法の違いは主にボックスの幅に影響します。相対的に配置されたブロック要素の幅は設定されません。の場合、その幅は親要素がある場合、その幅は親要素によって決まります。このブロック要素の内容が大きすぎる場合は、親要素も拡大されます。
、つまり、相対的に配置されたブロック要素の幅は親要素に依存します。それでは、これら 3 つのコンテナーが絶対配置に設定されている場合、どのような影響があるでしょうか。まずレンダリングを見てみましょう。
アプリからの画像
画像からわかるように、第 3 層コンテナの幅は、ドキュメント フローから分離されているため、親要素に依存しなくなり、その幅は 1 つだけです。内容によって決まります。要約すると、絶対的に配置されたブロック要素の幅は、それ自体のコンテンツによって決まります。相対的に配置されたブロック要素の幅が設定されていない場合、デフォルトはブラウザの幅になります。ただし、幅に関係なく、絶対配置された要素は、配置のためにそれ自体に最も近い親要素 (絶対配置または相対配置) を見つけます。
relative: 位置決めは自身の位置を基準にします (オフセットを設定すると、自身の位置を基準にオフセットされます)。相対に設定された要素はドキュメント フロー内に残り、要素の幅と高さは変更されず、オフセットを設定しても他の要素の位置には影響しません。最も外側のコンテナは相対位置に設定されます。幅が設定されていない場合、幅はブラウザ全体の幅になります。
absolute: 絶対配置または相対配置に設定されている要素に最も近い親要素を基準にして配置が決定されます。親要素が絶対配置または相対配置に設定されていない場合、要素はルート要素を基準にして配置されます。 html要素。絶対設定された要素はドキュメント フローの外にあります。要素の幅が設定されていない場合、幅は要素内のコンテンツによって決まります。切り離した後、元の位置は空になっているのと同じになり、次の要素がその位置を占めます。
注: この記事の実験結果は、親要素と子要素が固定幅を設定していない場合に得られます。親要素が固定幅を設定している場合、その子要素は絶対配置か相対配置かに関係なく配置されます。親要素の幅を超えることはできず、親要素はそれを超えることはできません。
以上がWeb フロントエンド面接の質問 8 - 絶対位置と相対位置の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









固定配置はドキュメント フローから切り離されますか? 特定のコード例が必要です。Web 開発では、レイアウトは非常に重要なトピックです。その中でも、ポジショニングはよく使われるレイアウト手法の 1 つです。 CSS には、静的配置、相対配置、および絶対配置という 3 つの一般的な配置方法があります。これら 3 つの位置決め方法に加えて、スティッキー位置決めという、より特殊な位置決め方法もあります。では、スティッキーな配置はドキュメント フローから切り離されるのでしょうか?以下で詳しく説明し、理解を助けるためにいくつかのコード例を示します。まず、ドキュメント フローとは何かを理解する必要があります

CSS で画像を中央に配置するには、display: block; と margin: 0 auto; を使用する主な方法が 3 つあります。フレックスボックス レイアウトまたはグリッド レイアウトを使用し、align-items または justify-content を中央に設定します。絶対位置を使用し、上と左を 50% に設定し、transform(-50%, -50%); を適用します。

CSS の Bottom 属性の構文とコード例 CSS では、bottom 属性は要素とコンテナの下部の間の距離を指定するために使用されます。親要素の下部を基準とした要素の位置を制御します。ボトム属性の構文は次のとおりです: element{bottom:value;} ここで、element はスタイルが適用される要素を表し、value は設定されるボトム値を表します。 value にはピクセルなどの特定の長さの値を指定できます

HTML5 でボックスを中央揃えにするには、次の方法があります: 水平方向の中央揃え: text-align: centermargin: autodisplay: flex; justify-content: center; 垂直方向の中央揃え:vertical-align: middletransform: translation(-50%, -50% ); 位置: 絶対; 上: 50%; 左: 50%; 変換: 変換(-50%, -50%);

CSS 要素の配置には、静的、相対、絶対、固定配置の 4 つの方法があります。静的配置がデフォルトであり、要素は配置ルールの影響を受けません。相対配置では、ドキュメント フローに影響を与えることなく、要素をそれ自体に対して相対的に移動します。絶対配置では、要素をドキュメント フローから削除し、その要素をその祖先要素に対して相対的に配置します。固定配置では、ビューポートを基準にして要素を配置し、要素を常に画面上の同じ位置に保ちます。

2017 年に発表された「tentionIsAllYouNeed」論文以来、Transformer アーキテクチャは自然言語処理 (NLP) 分野の基礎となってきました。その設計は長年にわたってほとんど変わっておらず、2022 年にはロータリー ポジション エンコーディング (RoPE) の導入によりこの分野で大きな発展が見られました。回転位置埋め込みは、最先端の NLP 位置埋め込み技術です。最も一般的な大規模言語モデル (Llama、Llama2、PaLM、CodeGen など) はすでにこれを使用しています。この記事では、回転位置エンコーディングとは何か、また、回転位置エンコーディングが絶対位置エンコーディングと相対位置エンコーディングの利点をどのようにうまく組み合わせているのかについて詳しく説明します。 Ro を理解するための位置エンコーディングの必要性

レイアウトとは、Web ページの要素を特定の規則と構造に従って配置および表示するために Web デザインで採用される組版方法を指します。合理的なレイアウトにより、Web ページはより美しく、整然とし、優れたユーザー エクスペリエンスを実現できます。フロントエンド開発では、従来のテーブル レイアウト、フローティング レイアウト、位置決めレイアウトなど、多くのレイアウト方法から選択できます。しかし、HTML5 や CSS3 の推進により、Flexbox レイアウトやグリッド レイアウトなどの最新のレスポンシブ レイアウト技術が主流になりました。

絶対配置 (AbsolutePositioning) は、CSS で一般的に使用される配置方法であり、最も近い位置にある祖先要素に対する要素の位置オフセットを指定することによってレイアウトを実行します。絶対位置決めを使用する場合は、その利点と制限を理解し、具体的なコード例を使用して理解を深める必要があります。まず、絶対配置の利点の 1 つは、要素の位置を完全に制御できることです。他のレイアウト方法と比較して、絶対配置では、ドキュメントの制限を受けることなく、ページ上の任意の場所に要素を正確に配置できます。
