Quantcast
Channel: CSSタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 8813

【CSS】position: absolute; と position: relative;

$
0
0

position: absolute;

:sunny:要素の配置位置を決められる
:sunny:サイトの左上部分を基準とし、そこから top と left を用いて指定
:sunny: right や bottom を用いることも可
:sunny:要素どうしを重ねて表示することもできる

スクリーンショット 2020-01-20 22.19.23.png

普通に作成すると上記のようになります。
これを position: absolute; を使って移動させます。

赤い四角の方を・・・

赤い四角.css
position:absolute;top:100px;left:50px;

青い四角の方を・・・

青い四角.css
position:absolute;top:170px;left:100px;

スクリーンショット 2020-01-20 22.48.13.png

このようになります:smile:
なぜこのような位置になるかというと

スクリーンショット 2020-01-20 22.28.00.png

サイトの左上を始点・・・ゼロとします。
赤い四角で言えば、そのゼロの位置から top は 100px 下のところになるよ。
そして left は 50px 左に行ったところになるよ。
ということです。

position: relative;

:sunny:指定した親要素の左上部分を基準位置とすることができる
:sunny:その親要素を基準として子要素の配置位置を決めることができる

さきほど position: absolute; で基準位置はサイトの左上と言いましたが
この基準位置を変更できるのが position: relative; です。

スクリーンショット 2020-01-20 22.48.13.png

さきほどの図をつかって説明します。
赤い四角を親要素としますね:smile:

あ、どちらかを必ず親要素にしないとダメです。
このまま赤い四角を position: relative; しても青い四角は動いてくれないです。
必ず基準位置にしたいものを親要素にしてくださいね:smile:
動かしたい子要素は親要素の入れ子にしてコード記入したら大丈夫です:smile:

こんな感じ

例.html
<divclass="red">赤い四角
      <divclass="blue">青い四角</div></div>

話を戻しまして、赤い四角を親要素とし
青い四角を子要素としたときの CSS はこんな感じ

赤い四角.css
.red{width:100px;height:100px;background-color:red;text-align:center;line-height:100px;position:absolute;top:100px;left:50px;position:relative;}

position: relative; 追加しただけです:sweat_smile:
で、青い四角はというと

青い四角.css
.blue{width:100px;height:100px;background-color:skyblue;text-align:center;line-height:100px;position:absolute;top:170px;left:100px;}

なにも変更していません:sweat_smile:
どうなったかというと
スクリーンショット 2020-01-20 23.37.18.png
こうなりました:smile:

さきほどはサイトの左上を基準としましたが
今回は赤い四角の左上を基準としたため
そこから top は 170px 下のところになり
そして left は 100px 左に行ったところに青い四角は配置されました:smile:


Viewing all articles
Browse latest Browse all 8813

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>