LoginSignup
0
0

More than 3 years have passed since last update.

CSS 備忘録<基礎に振り返る>

Posted at

CSSについて復習

今まで、なんとなくでhtmlファイルにcssを当てており、直せたから大丈夫と考えていました。
さて、GWに突入ということもあり、CSSを再思考して基礎に戻っていきたいと思います

Boxモデルとは何か

まず、大切になる考え方が「Boxモデル」。

Content: textやimageなどの中心となる物
→widthやheightで幅や高さを調整する

Padding: Contentに対しての外枠(透明なエリア)に当てるもの

Border: Paddingによってできた幅の外枠に当てるもの

Margin: Paddingに似ている物
→しかし、PaddingはContentの内側に当てるものに対して、MarginはContentの外側に当てるもの

なぜズレは起きてしまうのか

以下の具体的なコードを参考にしてズレてしまう原因を考えてみる

<div class="parent">
  親要素
  <div class="child">
    子要素
  </div>
</div>
.parent {
  width: 300;
  height: 100px;
  border: 2px dashed red;
}

.child {
  width: 100%;
  padding: 10px;
  background-color: white;
  border: 3px solid black;
}

}

これを実際に記述してみると、親要素に囲まれた枠線から、子要素のボックスがはみ出てしまう
→上に記述した「Boxモデル」によりボックスのサイズは、「Content + Padding + Border + Margin」の合計の大きさになる
→上の例だと、childタグの幅の大きさは、width 300(100%なので親要素と同じになる) + padding 20(10 で両サイドあるので) + border 6(paddingと同じ) = 326になってしまう
→そのため、parentタグの幅300に対して26分childタグの要素が出てしまう

問題解決をするには

1.計算して記述する
→上の例だと、parentのwidthが300なので、計算してchildも300になるようにする
→例えば、widthを95%(285)にしてpaddingを4.5にすれば、合計して300になるので横にはみ出す原因は解決することができる

2.親要素に「box-sizing」プロパティを使用する
→そうすることで、contentに対して適度な大きさになるように計算してくれるようになる

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0