HTML&CSS/CSS

CSS(6) Box Model

UserDonghu 2023. 8. 20. 00:14

CSS Box Model

HTML 요소를 감싸는 상자

웹페이지는 이런 수많은 상자가 모여있는것

요소, 패딩, 테두리, 마진으로 구성

요소 : 텍스트, 사진 등 보여줄 대상

패딩 : 요소 주변 영역

테두리 : 요소와 패딩을 감싸는 테두리

마진 : 테두리 밖의 영역

CSS Box Model은 블록박스에 적용. 인라인 박스는 박스 모델에 정의된 일부 동작만 사용

inline 요소는 width, height, 상하 margin 값이 적용 X

 

width

요소의 너비 설정

기본값은 콘텐츠 영역의 너비이지만, box-sizing 속성을 사용해 테두리 영역의 너비를 설정

auto : 기본값. 브라우저가 계산하여 지정(요소의 부모 크기 기준으로 가득 채우기)

 

height

요소의 높이 설정

auto : 기본값. 브라우저가 계산하여 지정(요소의 자식 기준으로 조절)

 

padding

단축 속성

padding-top / padding-right / padding-bottom / padding-left 순으로 작성

 

margin

단축 속성

margin-top / margin-right / margin-bottom / margin-left 순으로 작성

/* 가운데 배치 */
p{
    width: 400px;
    margin: auto;
}
/* 오른쪽 배치 */
p{
	width: 400px;
	margin: auto 0 auto auto;
}

margin auto는 수평 정렬을 할 수 있지만, 세로 정렬은 적용 X

 

마진 병합 현상 (Margin Collapsing) :

1. 요소와 요소의 사이에 마진탑 혹은 마진바텀의 공간이 있을 경우, 더 높은 값의 마진 값이 적용되는 현상

2. 부모 요소와 자식 요소가 존재할 때, 자식 요소의 마진탑 혹은 마진바텀의 값이 부모의 높이에 영향을 미치지 않는 현상

 

border

테두리를 지정

테두리는 요소가 차지하는 전체 너비, 높이의 일부

단축 속성

선의 두께, 스타일, 색상을 지정 가능

border-width / border-style / border-color

 

box-sizing

content-box : 기본값. width, height에 border, padding 포함하지 않음

border-box : width, height에 border, padding 포함 ex) width = 콘텐츠 너비 + border + padding

 

overflow / overflow-x / overflow-y

박스보다 콘텐츠가 더 커 콘텐츠가 넘칠 경우 어떻게 처리할지 지정

visible : 기본값. 박스를 넘는 컨텐츠를 자르지 않음

hidden : 요소의 크기만큼 맞추기 위해 잘라냄. 스크롤바 제공X

scroll : 요소의 크기만큼 잘라내고 스크롤을 제공

auto : 자동으로 콘텐츠가 넘칠 경우 스크롤바를 노출

 

border-radius

상자의 모서리를 둥글게 처리

단축 속성

border-top-left-radius / border-top-right-radius / border-bottom-right-radius / border-bottom-left-radius

div{
	border-radius: 20px 20px 10px 10px;
}

 

background

단축 속성

background-color / background-image / background-repeat / background-position / background-size

 

background-repeat

- repeat : 반복

- no-repeat : 반복하지 않음

- repeat-x : x축으로만 반복

- repeat-y : y축으로만 반복

background-size

- contain : 이미지가 잘리거나 찌그러지지 않는 한도 내에서 제일 크게 설정. 여백이 발생할 수 있음

- cover : 이미지가 찌그러지지 않는 한도 내에서 제일 크게 설정. 이미지를 잘라낼 수 있음.

div1{
	background: skyblue url(img/bg.jpg) no-repeat center /contain;
}
div2{
	background: red url(img/bg.jpg) repeat-y 50% 50% /cover;
}

 

box-shadow

그림자 효과를 추가

단축 속성

offset-x / offset-y / blur-radius / spread-radius / color

div{
	box-shadow: 10px 2px 10px 1px black;
}

 

opacity

불투명도를 설정

0-1 사이의 숫자를 지정

div{
	opacity: 0.3;
}

'HTML&CSS > CSS' 카테고리의 다른 글

CSS(8) float  (0) 2023.08.21
CSS(7) form 관련 가상 선택자  (0) 2023.08.20
CSS(5) display 속성 / 단위  (0) 2023.08.19
CSS(4) 선택자 우선순위  (0) 2023.08.19
CSS(3) 선택자  (0) 2023.08.19