



WithCodeMedia-1-pc
WithCodeMedia-2-pc
WithCodeMedia-3-pc
WithCodeMedia-4-pc




WithCodeMedia-1-sp
WithCodeMedia-2-sp
WithCodeMedia-3-sp
WithCodeMedia-4-sp
ペン博士、positionの absolute と relative がよく分かりません。どう使い分ければいいんでしょうか?
ふむふむ。要は「基準(どこを起点に置くか)」と「文書の流れに居るか/外れるか」じゃ。今から詳しく解説するからよーく聞くんじゃぞ。
ありがとうございます!お願いします!
CSSで要素の配置が思い通りにいかない、そんな悩みを抱えていませんか?
特に position: relative と absolute の違いや使い分けが分からないと、思い通りにレイアウトを調整するのは難しいです。しかし、これらの基本を押さえて正しく使えば、要素の配置は簡単になり、効率的なレイアウト管理が可能になります。
本記事では、具体的な使い方と実例を通して、これらのプロパティを徹底解説します。
「学習→収入」につなげた受講生のリアルな体験談も公開中!
働き方を変えたい方にも響くストーリーです。
O.Yさん
子育てと両立できる働き方を目指し、プログラミングの学習を開始する。独学での学習に限界を感じ、WithCodeの副業コースの受講を決意。最終目標から逆算した学習計画のもとスキルを習得し、卒業後に初案件を担当。現在は実案件サポートのもと、複数案件を担当している。
詳しくはこちらの記事をご覧ください。
CSSの position プロパティは、要素の配置方法を指定する際に重要な役割です。特に、relative、absolute はよく使われる値で、それぞれ異なる動作をします。
relative は、要素の本来の位置から相対的に位置を調整できるモードです。relative は、他の要素の配置に影響を与えずに、要素の位置を微調整できます。
absolute は、要素を親要素を基準に絶対位置に配置し、親要素が position: relative を持っている場合、その位置が基準になります。absoluteを使うと、要素は文書の流れから外れ、自由な位置に配置できるため、複雑なレイアウトを構築する際に有効です。
各positionの動作を理解することで、効率的なレイアウト設計が可能じゃ。
positionプロパティについてもっと知りたい方は以下の記事をご確認ください。
ここでは、position relativeの使い方とその具体例を解説するぞ。
relativeを使うことで、要素の元の位置はそのまま残り、視覚的に動いた位置が反映されます。複雑なCSSレイアウトの中でも、特定の要素だけを柔軟に調整することが可能です。具体的には、フォームやボタン、ナビゲーションメニューなどの要素を相対的に配置し直すときに役立ちます。視覚的な調整に使う際には、top や left のプロパティと組み合わせて微調整するのが一般的です。
See the Pen relative-1 by kosuke (@kenkenpyo) on CodePen.
このように relative を使うことで、親要素や他の要素に影響を与えずに、個別に要素の位置を微調整することが可能じゃ。
要素の元の位置を基準に動きを与えることで、他の要素に影響を与えずに滑らかなアニメーションを実現できます。例えば、ボタンがホバーされたときに上下に動く、またはポップアップメニューが表示されるような効果を作る際に使います。
position: relative を使うことで、要素のレイアウト自体はそのまま維持され、動きを与えてもページ全体の構造が崩れません。さらに、CSSの @keyframes と組み合わせることで、複雑な動きのアニメーションも簡単に実装可能です。
See the Pen Untitled by kosuke (@kenkenpyo) on CodePen.
このように、position: relative はアニメーションを実装する際に非常に有効じゃ。他の要素に影響を与えずに動きを加えることができ、動的なデザインをするのに適しているぞ。
アニメーションについてもっと詳しく知りたい方は以下の記事をご確認ください。
CSSアニメーションを使って「ぽよん」と動かす!初心者でもできる実装ガイド
ここでは、position absoluteの使い方と実用例を解説するぞ。
position: absolute は、通常 position: relative を指定された親要素と組み合わせて使用されます。absoluteの要素は、親要素を基準にして配置が決まるため、親要素に position: relative を設定しておくことで、子要素の位置を自由に調整でき、レイアウトの柔軟性を高める有効な方法です。
例えば、Webページでバナーの上にテキストやボタンを重ねたい場合、親要素に relative を設定し、子要素に absolute を使うと、テキストやボタンを自由に配置できます。この組み合わせによって、他の要素の配置に影響を与えることなく、意図した通りに表示をコントロールすることが可能です。
以下のコード例では、親要素に position: relative を設定し、子要素の画像やテキストを absolute で重ねています。
See the Pen Untitled by せいや (@ddwkeakz-the-reactor) on CodePen.
この例では、.container に position: relative を設定し、その中にある .overlay-text は position: absolute で、バナー画像の上に自由に配置されています。
position: absolute は、要素を文書の流れから切り離して、親要素に対して絶対的な位置に配置するためのプロパティです。これを使えば、特定の要素を自由に配置でき、複雑なレイアウトを簡単に作成できます。
例えば、2つの要素が並んだレイアウトや複数の重なり合った要素を使用したデザインにおいて、絶対位置を指定することで、視覚的にリッチな画面が作成可能です。親要素に position: relative を設定し、その上に子要素を position: absolute で配置することで、親要素内での子要素の配置が意図通りに行えます。
以下に、具体的なレイアウト例を示します。
See the Pen relative-4 by kosuke (@kenkenpyo) on CodePen.
このように、絶対位置指定を使用すると、親要素の中で要素を自由に配置できるため、複雑なレイアウトを効率的に構築できるぞ。
ここでは、CSSレイアウトにおけるz-indexの使い方について解説するぞ。
z-index プロパティは、要素の重なり順を制御するために使われ、特にposition: relative や position: absolute を使って要素を配置した際に、どの要素が前面に表示され、どの要素が背面に隠れるかを管理できます。z-index の数値が大きいほど、その要素は前面に表示され、小さい数値の要素は背面に配置される仕組みです。
例えば、複数の画像やテキストが重なるレイアウトを作成する際に、特定の要素を前面に表示したい場合に z-index を利用します。通常、親要素に position: relative を設定し、その中の子要素に z-index を指定することで、期待通りのレイヤー配置が可能です。
See the Pen relative-5 by kosuke (@kenkenpyo) on CodePen.
ここでは、positionが効かない原因と対処法を解説するぞ。
position: absolute を使っているとき、期待通りに要素が配置されない場合、その原因は親要素に position: relative または position: absolute が設定されていないことが多いです。絶対配置の要素(absolute)は、最も近い親要素の position プロパティが relative または absolute に設定されていることを前提にして配置されます。
もし親要素がデフォルトの position: static のままだと、画面全体を基準に配置されてしまうため、思い通りにレイアウトを組むことができません。
以下に例を示します。
親要素にposition: relativeを設定していない場合:
See the Pen relative-6 by kosuke (@kenkenpyo) on CodePen.
このように子要素で位置を指定してますが、親要素から離れていません。
親要素にposition: relativeを設定した場合:
See the Pen relative-7 by kosuke (@kenkenpyo) on CodePen.
親要素に position: relative を設定しているため、子要素の position: absolute は親要素の位置を基準にして配置され、意図通りのレイアウトが実現できます。
overflow: hidden は、親要素のコンテンツがはみ出したときに、はみ出した部分を表示しないようにするプロパティです。このプロパティが設定されていると、position: absolute や relative を使って要素を自由に配置しても、親要素の境界外に出た部分は隠されてしまいます。
例えば、バナー画像の上にボタンやテキストを absolute で配置して、親要素を超えて表示させたいときに、overflow: hidden が有効になっていると、ボタンやテキストが一部見えなくなることがあります。
以下に例を示します。
overflow: hiddenの場合
See the Pen relative-8 by kosuke (@kenkenpyo) on CodePen.
overflow: visibleの場合
See the Pen relative-9 by kosuke (@kenkenpyo) on CodePen.
このようにvisibleにすることで表示できる。なお、デフォルトの設定ではoverflowプロパティはvisibleじゃ。overflowプロパティを削除することで期待通りのレイアウトになるぞ。
z-index プロパティは、要素の重なり順を制御するために使用されますが、複数の要素で z-index の値が競合していると、意図した順番で要素が表示されない場合があります。特に、異なる position の設定が組み合わさると、この問題が発生しやすくなります。
例えば、複数の要素に position: absolute を設定し、それぞれに異なる z-index の値を指定しているにもかかわらず、正しく前面や背面に表示されないことがあり、要素が属する stacking context(スタッキングコンテキスト)によるものが原因です。
スタッキングコンテキストは、Webページで「どの要素がどの要素の前に表示されるか」を決める仕組みです。例えば、画像やボタンがどの順番で重なって表示されるかをコントロールするために使い、特定の要素がスタッキングコンテキストを作ると、その中にある要素は、外側の要素と別に重なり順を持つようになります。
スタッキングコンテキストはrelative、absolute、fixedなどを使用すると作成される。親要素が新しいスタッキングコンテキストを作成した場合、子要素の z-index が効かないことがあるのじゃ。
See the Pen relative-10 by kosuke (@kenkenpyo) on CodePen.
このように、z-index とスタッキングコンテキストを理解し適切に管理することで、要素の重なり順を意図通りに制御できます。
position プロパティを使って要素を配置しようとしても、要素が正しく表示されない場合、高さや幅の指定が欠けていることが考えられ、特に親要素や子要素にwidth や height が設定されていないと、要素が意図しない形で表示されたり、配置がうまくいかないことがあります。
例えば、position: absolute を使って要素を親要素に対して配置しようとする際に、親要素の高さや幅が自動で計算されると、その配置が思い通りにいかないことも多いです。
特にレスポンシブデザインの場合は、パーセンテージや vw、vh などの単位を活用し、柔軟に高さと幅を設定しましょう。
ペン博士!positionのabsoluteとrelativeの違い、よくわかりました!
非常にわかりやすかったです!
そう言ってくれて嬉しい限りじゃ!absolute は“親を基準に置く”、relative は“その場にいながら見た目だけズラす”。そして親に position: relative;
を付けるのが肝じゃぞ!
早速自分のページで試してみます。ペン博士、ありがとうございました!
本記事では、CSSのpositionのabsoluteとrelativeの使い方について解説しました。
CSSのpositionプロパティ は、要素を自由にレイアウトし、他の要素と干渉しないように配置するための重要なプロパティです。
要点は以下の通りです。
relativeの特徴
要素自身の元の位置を基準にして、上下左右へ位置を微調整できる。
absoluteの特徴
親要素 を基準にして要素を正確に配置可能。
より自由なレイアウトを作るのに役立つ。
z-indexとの組み合わせ
要素の 重なり順を制御 できる。
複雑なデザインや重ね合わせが必要な場合に効果的。
しかし、positionプロパティがうまく効かない場合もあるため、その際は今回解説した原因と対処法を参考に、要素のスタイル設定を見直すことが大切です。
CSSの基本を押さえ、実際にコードを使って試行錯誤することが、最適なデザインの実現につながるでしょう。
副業・フリーランスが主流になっている今こそ、自らのスキルで稼げる人材を目指してみませんか?
未経験でも心配することありません。初級コースを受講される方の大多数はプログラミング未経験です。まずは無料カウンセリングで、悩みや不安をお聞かせください!
公式サイト より
今すぐ
無料カウンセリング
を予約!