Home [CSS] box model, box sizing, display
Post
Cancel

[CSS] box model, box sizing, display

기본 ! : MDN CSS 공식 문서 참고할것

box model

  • content , padding, border, margin으로 이루어져있다.
  • content : width(가로), height(세로)
  • padding : content 와 border 사이의 공간을 나타낸다.
  • border : 테두리. 굵기, 스타일, 색상 세 property를 명시해야함 border : 1px solid #000; 혹은 테두리를 없앨 때 border : none;

    • border-radius : 50%
    • border-top-left-radius : 10px;
    • outline : border와 유사해보이지만 box 내부에서 영역을 차지하지 않고 border 영역 밖에 있는 라인이다. button, input, textarea 가 focus 혹은 active 될때 주로 보인다. 원하지 않을때에는 outline: none; 을 설정한다.
    1
    2
    3
    4
    5
    6
    7
    8
    
    button:active,
    button:focus,
    input:active,
    input:focus,
    textarea:active,
    textarea:focus {
      outline: none;
    }
    
  • margin : 요소와 요소 사이의 간격을 나타낸다.
  • 개발자 도구 > Elements> computed 에서 확인 가능
  • shorthand style : top - right - bottom - left
    • top & bottom, right & left는 세트라고 생각하면 된다.
    • margin top & bottom : 20px, right & left: 40px -> margin: 20px 40px

box sizing

  • box sizing : border-box; margin, padding으로 따로 설정된 사이즈를 포함 실제 화면에 노출되는 사이즈를 component width, height으로 한계를 지어준다.
  • content-box : default value가 content-box 로 설정되어있다. component width, height에 margin, padding값을 더해 화면에 보여준다.

  • css를 구현할 때 전체 선택자로 border-box 설정을 해주기도 한다.
1
2
3
4
5
6
* {
  box-sizing: border-box;
  margin: 0;
}

//margin  0으로 설정하면 각기 다른 요소들의 default margin을 고려하지 않아도 되서 편하다.

display

  • box type을 결정짓는 css, display 값이 어떤것이냐에 따라 box type이 달라진다.

block

  • 같은 행에 다른 component가 못 들어오게 막는다. 따로 width를 선언하지 않은 경우 width = 부모 contentbox의 width. width를 선언하고 그 길이가 부모 contentbox의 width보다 작다면 남은 공간은 margin으로 채운다.
  • margin : 0 auto;를하면 가운데 정렬되는 이유가 이것이다. margin-left :auto, margin-right:auto 로 빈 공간을 왼쪽 오른쪽 반반씩 나누기 때문에 content가 가운데로 정렬된다.
  • child의 height을 설정하고 parent의 height을 따로 설정하지 않는다면 child height의 총합 = parent의 height

inline

  • 같은 행에 다른 component가 들어오도록 한다. 행에 공간이 부족하다면 다음 행에서 보여준다.
  • span, a, strong 기본 display가 inline이다.
  • width, heigth, padding(top & bottom), border(top & bottom), margin(to & bottom) 사용 불가. 영역으로 취급을 안해주고 덮어씌우는 것과 같은 모양을 보여줌. inline의 구현 목적에 어긋나기 때문에 사용하지 않는 것을 추천함
  • padding, border, margin이 적용되지 않는다 싶으면 꼭 display가 inline인지 확인하기!!
  • img tag는 inline이지만 display를 바꾸지 않아도 예외적으로 사이즈를 변형할 수 있다. css display inline 참조 display : block;을 적어서 display 상태를 명시해주는 것이 좋다. </strong>

inline block

  • block의 장점과 inline의 장점의 결합이라고 볼 수 있다. 행으로 배치되지만 개별 영역을 존중(?)하는 display
  • 모든 속성 사용가능

💡 display:none; 인 요소는 display : block;으로 화면에 노출시킬 수 있다.

This post is licensed under CC BY 4.0 by the author.

[HTML] HTML section, article, nav, aside, main

[React] React-hook-form

Comments powered by Disqus.