この記事では要素の配置方法を指定する、CSSのposition
プロパティについて解説します。
absolute
やrelative
・・・と聞くとWebデザインの勉強を始めたばかりだと難しく感じてしまいますが、これを使いこなすと自由なレイアウトができるので確実に理解しておきましょう。
Contents
positionとは?
要素の配置方法を指定します。
positionと一緒に使うプロパティ
position
で配置方法を決めたら、具体的に配置位置を指定する為にtop,right,bottom,leftやz-index
というプロパティを併用します。
単位はpx、%がよく使われ、マイナスの値を指定することもできます。ただしこれら全て、position
がstatic
(デフォルト値)だと使用出来ないので注意が必要です。
プロパティ | 説明 |
---|---|
top | 基準位置の上からの数値を指定 |
right | 基準位置の右からの数値を指定 |
bottom | 基準位置の下からの数値を指定 |
left | 基準位置の左からの数値を指定 |
z-index | ボックスの重なり順を指定。数字が多いほど上に表示 |
-
-
【CSS入門】z-indexを使えば要素の重なり順は思うがまま
この記事ではCSSのz-indexプロパティについて解説します。 Contentsz-indexとは?z-indexの使い方z-index: auto;z-index: 整数;まとめ z-indexと ...
positionの使い方
position
に指定できる配置方法(値)は以下の通りです。
値 | 説明 |
---|---|
static | デフォルト。配置方法を指定しない |
relative | 本来の表示位置(static)から相対的な位置を指定 |
absolute | 親要素からの絶対的な位置を指定 |
fixed | ウィンドウの決まった位置に固定。スクロールしても位置が変わらない |
position: static;
position
の初期値がこれです。topやleft、z-index
などのプロパティを指定しても効かず、配置位置と重なり順を変えることはできないのでstaticを指定することは、ほとんどありません。
しかし指定したpositionを打ち消すことができる>ので、レスポンシブデザインでは重宝します。
position: relative;
本来の表示位置(static)から相対的な位置を指定します。下記の例の場合、BOX-Bは本来の表示位置の上から100px、左から200px移動するように指定しています。
relative
を指定すると移動させた要素の高さは元の場所に残るので、BOX-CはBOX-Bの元の位置の下に配置されています。
HTML
<div class="parent"> <div class="BOX-A">BOX-A</div> <div class="BOX-B">BOX-B</div> <div class="BOX-C">BOX-C</div> </div>
CSS
.BOX-A,.BOX-B,.BOX-C{ width: 300px; height: 150px; } .BOX-B{ position: relative; top: 100px; left: 200px; }
位置を指定する以外にも、static
では効かないz-index
を効かせるためや、absolute
の開始位置として使用する場面がかなりあります。
position: absolute;
親要素からの絶対的な位置を指定します。
absolute
を使う時は親要素にrelative
かfixed
を指定する必要があり、指定をしないとウィンドウの左上が基準位置となってしまいます。
使用例①
下記の例の場合、親要素にrelative
を指定していないので、、BOX-Bはウィンドウの左上を基準に上から100px、左から200px移動するように指定しています。
absolute
を指定すると要素は高さがなくなって浮いたような状態になるので、BOX-CはBOX-Bの元の位置に詰めて配置されています。
HTML
<div class="parent"> <div class="BOX-A">BOX-A</div> <div class="BOX-B">BOX-B</div> <div class="BOX-C">BOX-C</div> </div>
CSS
.BOX-A,.BOX-B,.BOX-C{ width: 300px; height: 150px; } .BOX-B{ position: absolute; top: 100px; left: 200px; }
使用例②
もう一つ、WEBサイトを制作していると画像の上に文字を配置したいときがよくあります。
そんなときは下記のように、画像を親要素としてrelative
を指定し、文字を子要素としてabsolute
を指定します。そして親要素の左上を基準とし、どこに子要素を配置したいかもtopなどを使い指定します。
HTML
<div class="bg"> <p>テキスト<br>サンプルです</p> </div>
CSS
.bg{ position: relative; width: 100%; height: 700px; background: url(./images/main.jpg)no-repeat center center; background-size: cover; } p{ position: absolute; top: 100px; left: 20px; color: #fff; }
position: fixed;
ウィンドウの決まった位置に固定されるので、スクロールしても表示位置が変わりません。
位置の基準はウィンドウの表示領域全体です。
HTML
<div class="bg"> <div class="BOX-A">BOX-A</div> </div>
CSS
.bg{ position: relative; width: 100%; height: 1000px; background: url(./images/main.jpg)no-repeat center center; background-size: cover; } .BOX-A{ position: fixed; top: 0px; right: 0px; }
まとめ
この記事に書かれていることで、特に覚えておいて欲しいことは以下の3点です。
- staticはpositionを打ち消すためによく使う
- z-indexを効かせたいときはrelativeを指定する
- absoluteを使うときは親要素にrelativeかfixedを指定する
CSS関係の記事は他にも書いているので、宜しければそちらもチェックしてみてください。
-
-
【完全初心者向け】CSSについての超簡単まとめ
WEBサイトを作る上で、HTMLと並んで絶対に欠かせない言語といえばCSS。 この記事ではCSSについてなるべく難しい言葉を使わずに、でも要点は抑えて解説していこうと思います。是非肩の力を抜いて読み進 ...
-
-
【CSS入門】 inline?block?displayで要素の種類を指定しよう
この記事ではCSSのdisplayプロパティについて解説します。 CSSを学ぶにあたって絶対に避けては通れない重要な項目なので、しっかりと理解していきましょう。 Contentsdisplayとは?d ...
-
-
【CSS入門】tableとtable-cellで要素を横並びさせよう
この記事ではCSSのdisplayプロパティの値である、tableとtable-cellをセットで紹介します。 Flexboxの登場により使う機会がほとんど無くなりましたが、場合によってはまだまだ使う ...
-
-
【CSS入門】Flexboxの基本と使い方まとめ【そろそろ覚えたい】
この記事ではdisplayプロパティの値である、flex(Flexbox)を紹介します。 Flexboxを覚えることで、サイトを作る際にレイアウトを組むのがかなり楽になりますので、必ず使えるようにして ...
-
-
【CSS入門】z-indexを使えば要素の重なり順は思うがまま
この記事ではCSSのz-indexプロパティについて解説します。 Contentsz-indexとは?z-indexの使い方z-index: auto;z-index: 整数;まとめ z-indexと ...
-
-
【CSS入門】floatについて学んで初心者脱出しよう
この記事ではCSSの「float」プロパティについて解説します。 レイアウトをする際に物凄くお世話になるプロパティで、ここでつまづくとサイトを作ることが困難になってしまうので、しっかりと理解しておきま ...
-
-
【CSS入門】overflowで、はみ出し部分の表示を指定
この記事ではCSSのoverflowプロパティについて解説します。 Contentsoverflowとは?overflowの使い方overflow: visible;overflow: hidden; ...