[🦁FE DAY 8(3)]標準CSS枠型番


標準CSSボックス型番


標準CSSボックスモデルの要素のフルサイズ=内容+ボーリング+塗りつぶし

1.コンテンツボックスサイズのwidth、heightを設定します(blockboxのみ!)

<head>
  <style>
  	div { 
    	width: 50px;
    	height: 50px;
    	background-color: orange;
    }
  </style>
</head>
	<div><div>
<body>

2. border


borderはコンテンツボックスの枠線です!
標準CSSボックスモデルでは、borderのサイズも要素のサイズ全体に含まれます.
button {
	border-width: 3px;
    border-style: solid;
    border-color: blue;
}

/* 축약형 */
button {
	border: 3px solid blue;
}

  • border-width
    直接指定
  • -直接指定
  • 、例えばpx
  • メディア-中程度の太さ
  • として指定
  • 細線-
  • 太い-太い線
  • として指定

  • border-style
  • none-枠線を除去
  • solid-直線
  • 破線-破線
  • 破線-針
  • 二重線
    ,
    ,
    ,
    border styleにはいろいろあるので、いつでも探してください!
    ( https://developer.mozilla.org/ko/docs/Web/CSS/border-style )

  • border-color
  • button {
        border-color: red; /* 네 면에 동일한 색상*/
        border-color: red orange; /* 상하 좌우 */
        border-color: red orange yellow; /* 상 좌우 하 */
        border-color: red orange yellow green; /* 상 우 하 좌 (시계방향)*/
    }
  • border-radius
    radiusアトリビュートは、枠線の頂点を丸くします.
  • border-radius: 30px;

    制作
  • ウォン
    ->radiusを50%に設定すると、要素の幅の半分に相当する半径の円が作成されます.
  • div{
    	width: 100px;
        height: 100px;
        border-width: 3px;
        border: 3px solid black;
        border-radius: 50%;
    }
  • 特定の頂点のみを丸くする
  • .
    border-top-left-radius: 50px; /* 상단 왼쪽 */
    border-top-right-radius: 40px; /* 상단 오른쪽 */
    border-bottom-left-radius: 30px; /* 하단 왼쪽 */
    border-bottom-right-radius: 20px; /* 하단 오른쪽 */

    3. padding


    標準CSSボックスモデルでは、塗りつぶしのサイズも要素のサイズ全体に含まれます.
    div {
    	width: 100px;
        height: 30px;
        border: 3px solid black;
        padding: 10px;
    }
    div合計横値=100+10+3+3=126
    div総縦値=30+10+10+3+3=56
  • padding値
  • をそれぞれ与えることができる.
    padding: 10px; /* 네 방향 모두 동일하게 10px 적용*/
    padding: 10px 20px; /* 상하 좌우 */
    padding: 10px 20px 30px; /* 상 좌우 하 */
    padding: 10px 20px 30px 40px; /* 상 우 하 좌 */

    4. margin


    marginは要素サイズ全体に含まれません.しかし、要因と要因の間の領域に影響します.
    div {
    	width: 100px;
        height: 30px;
        border: 3px solid black;
        margin: 10px;
    }
    div総横方向値=100+3+3=106
    div総縦値=30+3+3=36
    ->利益値はすべての要素サイズに含まれません.
  • のマージン値
  • をそれぞれ与えることができる.
    margin: 10px; /* 네 방향 모두 동일하게 10px 적용*/
    margin: 10px 20px; /* 상하 좌우 */
    margin: 10px 20px 30px; /* 상 좌우 하 */
    margin: 10px 20px 30px 40px; /* 상 우 하 좌 */
    
    margin: 10px auto;
    /* auto
    	: 요소 크기를 제외한 나머지 마진영역을 반으로 나눠 왼쪽과 오른쪽에 분배한다. 
          좌우로만 auto적용할 수 있고 상하로는 auto 적용할 수 없다.*/

    エッジオーバーラップ(エッジ折りたたみ)

    : 인접하는 블록요소의 상하단의 마진이 겹쳐졌을 때 더 큰 마진 값이 적용되는 현상
    利益重複現象の条件
    1.隣接するブロック要素間で発生します.
    2.上下端のみオーバーラップ現象が発生.(左右の余白のマージは発生しません)
    ケース1:隣接するブロック要素間の上下の境界が重なる
    <div class="one"></div>
    <div class="two"></div>
    div {
    	width: 100px;
        height: 100px;
        background-color: khaki;
    }
    .one {
    	margin-bottom: 30px;
    }
    .two {
    	argin-top: 60px;
    }
    の2つの要素の境界は上下に重なるが、2つの境界値は増加しない.第1の要素の利益値(30 px)よりも大きい第2の利益値(60 px)が適用されたことを決定することができる.
    ケース2:親子の利益が重なる
    (1)親子ともに利益がない状態
    .parent {
    	background-color: white;
        width: 300px;
        margin: 0;
    }
    .children {
    	background-color: blue;
        width: 200px;
        height: 200px;
        border: 1px solid black;
        margin: 0;
    }

    (2)子供に1人当たり50 pxの利益を与える.

    なぜこんなことになったのか、
    利益が重なる現象の条件が満たされているからだ.
    まず親と子の2つの要素はBLOCK要素であり、隣接している.(条件1を満たす)
    また、子供の左右の利差はよく適用されるが、上下の利差にのみ適用される.これは親と子供の間の利益が結合したことを意味します!(条件2を満たす)
    すなわち、利益が連結されると、2つの利益値のうち大きな利益値が適用される.
    子供の利益値は50 px、親の利益値は0 pxなので、より大きな子供の利益値は50 pxです.
    そのため、50 pxは現在、親の利益値となっている.
  • ソリューション

  • 親要素にborder値を適用する
  • 親要素に境界値を適用し、親と子供の利益が重ならないようにする.
  • しかし、border=1 pxが与えられたと仮定すると、いずれにしても1 pxが増加するため、設計上1 pxの誤差が生じる.
  • 1.1空の表ラベルの挿入
    tableラベル自体にはサイズがなく、ボックスのサイズには影響しません!
    	<div class="parent">
        	<div class="children">A</div>
            <div class="children">B</div>
        </div>

  • サブエレメントの表示属性値をinline-blockに置き換えます

  • 利益結合現象の条件1(隣接するブロック要素の間でのみ発生する)は満たされず、親と子供の間の利益結合現象は発生しない.

  • しかし、子ども同士の利益合併もなく、子どもたちの利益値は増える.
    の画像から見ると、子供の間で本来発生すべき境界結合は境界結合を生じず、互いに反発し合い、この部分をより広くしている.

  • オーバーフロー親要素オーバーフロー親要素:適用を非表示
  • 親要因オーバーフロー:hiddenを適用すると、親、子供の箱の大きさにも影響しないし、子供の間の利益合併にも影響しないし、親、子供の間の利益合併を招くこともできない.
  • リファレンス
  • https://velog.io/@ursr0706/%EB%A7%88%EC%A7%84margin
  • https://youtu.be/c19Mjg-ivxc