학습
CSS CSS 리셋 및 노말라이즈
CSS CSS 리셋 및 노말라이즈 — 초급
CSS 리셋 및 노말라이즈
1. 도입 (왜 배워야 하는가)
웹 개발에서 CSS는 웹 페이지의 시각적 요소를 구성하는 데 필수적입니다. 하지만 각 브라우저는 기본 스타일을 다르게 적용합니다. 예를 들어, 하나의 브라우저에서 <h1> 태그는 기본적으로 두껍고 큰 글씨로 나타나지만, 다른 브라우저에서는 그렇지 않을 수 있습니다. 이러한 차이로 인해 동일한 웹 페이지가 브라우저마다 다르게 보일 수 있으며, 이는 사용자 경험에 부정적인 영향을 미칩니다.
CSS 리셋(CSS Reset)과 노말라이즈(Normalize) CSS는 이러한 문제를 해결하기 위해 사용됩니다. 이 두 가지 방법은 웹 페이지의 기본 스타일을 초기화하여 일관된 렌더링을 보장합니다.
2. 핵심 개념 설명
CSS 리셋
CSS 리셋은 모든 HTML 요소의 기본 스타일을 제거하여 브라우저 간의 스타일 차이를 없애는 방법입니다. 마치 모든 색을 지운 캔버스에 다시 그림을 그리는 것과 비슷합니다.
노말라이즈 CSS
노말라이즈는 기본 스타일을 제거하는 대신, 각 요소의 기본 스타일을 더 일관되게 조정합니다. 즉, 요소의 기본 스타일을 보존하되, 브라우저 간의 차이를 줄입니다. 이는 마치 원래의 그림을 유지하면서 색상을 조정하여 더 나은 결과를 만드는 것과 같습니다.
| 개념 | 정의 |
|---|---|
| CSS 리셋 | 모든 요소의 기본 스타일을 제거하여 일관성을 부여하는 방법 |
| 노말라이즈 | 기본 스타일을 조정하여 브라우저 간의 차이를 줄이는 방법 |
3. 기본 코드 예제
CSS 리셋 예제
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
- 실행 결과: 모든 요소의 기본 마진과 패딩이 제거됨
- 설명:
- * { ... }: 모든 요소에 적용됨.
- margin: 0;: 모든 요소의 외부 여백을 0으로 설정.
- padding: 0;: 모든 요소의 내부 여백을 0으로 설정.
- box-sizing: border-box;: 요소의 너비와 높이를 테두리와 안쪽 여백을 포함하여 계산.
노말라이즈 CSS 예제
html {
line-height: 1.15; / Improved line height /
}
body {
margin: 0; / Remove default margin /
}
h1 {
font-size: 2em; / Consistent size for h1 /
margin: 0; / Remove margin for h1 /
}
- line-height: 1.15;: 텍스트의 줄 높이를 설정하여 가독성을 향상.
- margin: 0;: 기본 마진을 제거하여 예측 가능한 배치 제공.
- font-size: 2em;: h1 태그의 크기를 일관되게 설정.
4. 실전 활용 예제
예제 1: 쇼핑몰 장바구니
쇼핑몰에서 장바구니를 구현할 때, 다양한 요소들이 일관성 있게 보이도록 하려면 리셋이나 노말라이즈가 필요합니다. 예를 들어, 상품 이미지와 설명이 정렬되지 않으면 사용자가 혼란을 느낄 수 있습니다.
* {
box-sizing: border-box;
}
.product {
display: flex;
margin-bottom: 20px;
}
.product img {
max-width: 100px;
margin-right: 10px;
}
예제 2: 블로그 레이아웃
블로그 포스트에서 제목과 본문이 깔끔하게 정렬되어야 합니다. 노말라이즈를 사용하면 기본 스타일을 조정하여 각 요소가 일관되게 나타나도록 할 수 있습니다.
body {
font-family: Arial, sans-serif;
}
h1, h2, h3 {
margin-bottom: 10px;
}
p {
margin-bottom: 15px;
}
5. 흔한 실수와 주의사항
실수 1: CSS 리셋을 사용하지 않음
h1 {
font-size: 3em; / 브라우저 기본 스타일에 의존 /
}
* {
margin: 0;
padding: 0;
}
실수 2: 노말라이즈 CSS를 오해함
h1 {
font-size: 2em; / 노말라이즈를 사용하지 않아 기본 스타일을 그대로 사용 /
}
h1 {
margin: 0; / 기본 스타일을 수정하여 일관성 유지 /
}