positionの使い方

あいまいにしていたことを、明確にしていきます!

参照元

CSSのpositionを総まとめ!absoluteやfixedの使い方は?

positionの使い方

positionは基準の位置に対してどの位置に配置するのかを決める。 基準の位置は、設定値によって変わる。

positionの設定値

値は4種類ある。
static / relative / absolute / fixed

1つ目:static

デフォルト値。(未指定の場合はstatic) top / bottom / left / right を指定しても配置は変わらない。

2つ目:relative

何も指定していない時の位置(top / left / right / bottomを未指定の時の位置)を基準にして配置する。

<div class="sample">
</div>
.sample {
  position: relative;  /* 元々の位置を基準とする */
  top: 100px;  /*元々の位置(top:100px を未指定の時の位置)を基準に上から100pxずらす*/
}

3つ目:absolute

親要素を基準にして配置する。
親要素は、positionに relative か fixed が指定してある既出の要素。

<div class="parent">
  <div class="child">
  </div>
</div>
.parent {
  position: relative;  /* 親要素の目印 */
}
.child {
  position: absolute; /*親要素を基準の位置とする*/
  /*親要素上から10px、左から10pxずらす*/
  top: 10px;  
  left: 10px;
}

4つ目:fixed

ウィンドウ全体(表示画面)を基準にして配置する。

positionの使いどころ

見出しのアイコン

タイトルの要素を基準として、before / after 要素を作って装飾する。

<article class="article">
  <h3 class="article__title">タイトル</h3>
  <p>文章</p>
</article>
.article__title {
  position: relative;
  padding-left: 24px;
}
.article__title::before {
  content: "";
  display: block;
  position: absolute;
  width: 10px;
  height: 20px;
  top: 0px;
  left: 0px;
  background-color: #999;
}
.article__title::after {
  content: "";
  display: block;
  position: absolute;
  width: 10px;
  height: 20px;
  bottom: 0px;
  left: 0px;
  background-color: #333;
}