일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 프로그래머스 알고리즘
- 프로그래머스 레벨0
- next.js 에러
- mysql
- 알고리즘공부
- 알고리즘문제
- 1일1코테
- 정보처리기사
- next.js
- js
- 프로그래머스알고리즘
- CSS
- 프로그래머스코딩테스트
- 코딩테스트
- html
- 자바스크립트
- 코딩
- 프로그래머스 Lv.0
- 개발자
- 코테공부
- 코테스터디
- 알고리즘스터디
- 프로그래머스
- 프로그래머스 코딩테스트
- 정처기기출
- 프로그래머스코테
- 코테준비
- Redux-Toolkit
- 프로그래머스 코테
- 프로그래밍
- Today
- Total
계발하는 개발자
[CSS] 박스 크기를 결정하는 box-sizing : border-box, content-box 본문
box-sizing은 박스의 크기를 어떤 것을 기준으로 계산할지를 정하는 속성이다.
[ Box-sizing 속성 ]
1) border-box:
- 테두리를 기준으로 크기를 정함
- border, padding, margin은 따로 계산되어 전체 영역이 설정값보다 커질 수 있음
2) content-box:
- 콘텐트 영역을 기준으로 크기를 정함
- border, padding, margin을 모두 합산하여 콘텐트 영역이 설정값보다 작을 수 있음
[ 문제 인식 ]
<head>
<meta charset="UTF-8">
<title>box-sizing</title>
<style>
div {
width: 200px;
margin: 10px;
}
.small {
border: 10px solid black;
}
.large {
border: 30px solid black;
}
</style>
</head>
<body>
<div class="small">box1</div>
<div class="large">box2</div>
</body>
위 코드로 짜여진 블록요소들(box1, box2) 의 크기는 같을까?
테두리를 제외한 알맹이(=콘텐트)만 본다면 같다 할 것이다.box1은 border: 10px을 줘서 약간 커진 데 반해,
box2는 border: 30px을 준 탓에 원래 콘텐트가 가진 너비보다 커보인다.
사실상의 너비는 같으나, 콘텐트 영역에 추가적으로 더해준 보더값 등으로 인해 크기가 달라보이는 착시를 겪는 것이다.
만약 박스 테두리를 기준으로 크기를 맞춘다면?!
div {
width: 200px;
margin: 10px;
box-sizing: border-box;
}
두 div 요소에 box-sizing: border-box 스타일을 줬다.
(각 박스에 준 border값이 차이나는 관계로, 두 요소의 크기를 맞추려면 border-box가 최선이다;)
border-box 스타일을 주자마자 쏙 하고 두 div 요소가 테두리를 기준으로 맞춰졌다.
<head>
<meta charset="UTF-8">
<title>box-sizing</title>
<style>
* {
box-sizing: border-box;
}
div {
width: 200px;
margin: 10px;
box-sizing: border-box;
}
.small {
border: 10px solid black;
}
.large {
border: 30px solid black;
}
</style>
</head>
<body>
<div class="small">box1</div>
<div class="large">box2</div>
</body>
이러한 점들로 인해 많은 div 요소들이 삽입된 웹페이지를 코딩할 때
* { box-sizing: border-box; }
위 같은 별표(*: 모든 태그 지정)를 상단에 넣어서border 기준으로 모든 박스들의 사이즈가 정해지도록 설정해두면 작업하기에 한결 편해질 것 같다.
'📌 Language > CSS' 카테고리의 다른 글
[CSS] overflow 속성 - 넘치는 컨텐트 요소 제어하기 (0) | 2022.12.27 |
---|---|
[CSS] White-space / 요소의 공백 처리 방법을 정하는 속성 (0) | 2022.12.27 |
[CSS] Outline vs Border 차이 (0) | 2022.12.27 |
[CSS] Float 그리고 Clear (0) | 2022.12.27 |
[CSS] 요소를 효과적으로 정렬하는 Flex-box: Justify-Content 속성 (0) | 2022.12.04 |
dev_genie
@dev_genie
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!