#07 CSS 박스 모델

2022. 1. 20. 00:51CSS

 

margin

  • 요소의 바깥 여백을 지정하는 속성 (테두리 밖)
  • 인라인 요소에는 상하 margin이 적용되지 않는다.
  • 인접한 요소의 margin은 더 큰 값으로 상쇄되어 하나만 적용된다.
  • 부모 요소에 padding이나 border가 적용되어있지 않다면
    첫 번째 자식 요소의 margin-top은 부모 요소의 margin-top처럼 보여진다.

 

- 속성 값의 개수에 따른 축약형

margin : 상 우 하 좌; (시계방향)
margin : 상 좌우 하;
margin : 상하 좌우;
margin : 상하좌우;

 

<div class="pink">Lorem Ipsum is simply dummy text of the printing and typesetting industry.</div>
<div class="lightblue">Lorem Ipsum is simply dummy text of the printing and typesetting industry.</div>
<div class="pink">Lorem Ipsum is simply dummy text of the printing and typesetting industry.</div>
.pink {
  width: 300px;
  background-color: pink;
}
.lightblue {
  width: 300px;
  background-color: lightblue;
  margin: 20px 0px 50px 30px;
}

 


padding

  • 요소의 안쪽 여백을 지정하는 속성 (테두리와 콘텐츠 사이)

 

- 속성 값의 개수에 따른 축약형

padding : 상 우 하 좌; (시계방향)
padding : 상 좌우 하;
padding : 상하 좌우;
padding : 상하좌우;

 

.lightblue {
  width: 300px;
  background-color: lightblue;
  margin: 20px 0px 50px 30px;
  padding: 20px;
}

 


border

  • 요소의 테두리를 지정하는 속성

 outline

  • 요소의 외곽선을 지정하는 속성
  • border는 요소 크기에 영향을 주지만 outline은 크기에 영향을 주지 않는다.

 

- 축약형

  • 두께 속성은 필수이며, 나머지 속성은 필요에 따라 선택할 수 있다.
border : width style color;
outline : width style color;

 

- style 속성 값

  • none : 테두리를 표시하지 않는다
    (가장 낮은 우선순위로 인접한 요소가 테두리를 갖는다면 테두리를 표시한다)
  • hidden : 테두리를 표시하지 않는다
    (가장 높은 우선순위로 인접한 요소가 테두리를 갖더라도 테두리를 표시하지 않는다)
  • dotted : 점선
  • dashed : 파선
  • solid : 실선
  • double : 이중선
  • groove : 테두리가 파인 것처럼 표현
  • ridge : 테두리가 튀어나온 것처럼 표현
  • inset : 요소가 파인 것처럼 표현
  • outset : 요소가 튀어나온 것처럼 표현

 

border-radius

  • 요소의 모서리를 둥글게 지정하는 속성
  • 값을 50%로 주었을 때 원형으로 표시된다

 

<div class="border">
  border
  <div class="child"></div>
  <div class="child"></div>
</div>
<div class="outline">outline</div>
.border {
  width: 300px;
  height: 200px;
  border: 5px solid red;
  margin-bottom: 30px;
}
.child {
  width: 50px;
  height: 50px;
  background-color: coral;
  border-radius: 10px;
  margin: 20px;
}
.child:nth-child(2) {
  border-radius: 50%;
}
.outline {
  width: 300px;
  height: 200px;
  outline: 5px solid blue;
}

 


CSS 박스 모델

* CSS box model *

 


box-sizing

  • 요소의 너비와 높이에 포함시킬 속성을 지정하는 속성

 

- 속성 값

  • content-box : 너비와 높이에 content 영역만 포함시킨다 (default)
    width = content width
  • border-box : 너비와 높이에 content 영역, padding 영역, border 영역을 포함시킨다
    width = content width + padding + border
<div class="content-box">content-box</div>
<div class="border-box">border-box</div>
div {
  width: 300px;
  height: 200px;
  padding: 20px;
  margin: 20px;
}
/*
  [ content-box ]
  content width = 300px
  total width = 300px + 20px*2 + 5px*2 = 350px
*/
.content-box {
  box-sizing: content-box;
  border: 5px solid orange;
}
/*
  [ border-box ]
  content width = 300px - 20px*2 - 5px*2 = 250px
  total width = 300px
*/
.border-box {
  box-sizing: border-box;
  border: 5px solid green;
}

 

반응형

'CSS' 카테고리의 다른 글

#09 CSS float 속성  (0) 2022.02.08
#08 CSS background 속성  (0) 2022.02.06
#06 CSS 가시 속성  (0) 2022.01.19
#05 CSS 영역 크기 속성  (0) 2022.01.19
#04 CSS text 속성  (0) 2022.01.18