학습
HTML 고급 CSS 기법
HTML 고급 CSS 기법 — 고급
고급 CSS 기법
1. 도입 (왜 배워야 하는가)
고급 CSS 기법은 웹 개발에서 필수적인 요소입니다. 사용자 경험(UX)을 향상시키고, 웹 페이지의 반응성을 높이며, 디자인의 일관성을 유지하는 데 큰 역할을 합니다. 실무에서 고급 CSS 기법을 모르면, 복잡한 레이아웃을 구현하거나 애니메이션 효과를 추가하는 데 어려움이 있을 수 있습니다. 이는 결과적으로 사용자에게 매력적이지 않은 웹 페이지로 이어질 수 있으며, 경쟁력이 떨어질 수 있습니다.
2. 핵심 개념 설명
고급 CSS 기법에는 여러 가지가 있지만, 여기서는 Flexbox, Grid, CSS 변수에 대해 설명하겠습니다.
2.1 Flexbox
Flexbox는 컨테이너 내의 아이템을 효율적으로 배치할 수 있도록 돕는 CSS 레이아웃 모듈입니다. 마치 정리된 서랍처럼, 원하는 대로 아이템을 정렬하고 공간을 분배할 수 있습니다.
2.2 Grid
Grid는 2차원 레이아웃을 생성할 수 있는 CSS 기능으로, 격자 모양으로 요소를 배치하는 데 유용합니다. 이는 마치 격자판 위에 아이템을 배치하는 것처럼 이해할 수 있습니다.
2.3 CSS 변수
CSS 변수는 중복되는 값을 변수처럼 저장하고, 이를 재사용할 수 있게 해주는 기능입니다. 이는 마치 요리에서 재료를 미리 준비해놓고 필요한 만큼 사용하는 것과 같습니다.
| 용어 | 정의 |
|---|---|
| Flexbox | 1차원 레이아웃을 위한 CSS 모듈 |
| Grid | 2차원 레이아웃을 위한 CSS 모듈 |
| CSS 변수 | CSS 내에서 재사용 가능한 변수 |
3. 기본 코드 예제
Flexbox 사용 예제
<div class="flex-container">
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
</div>
.flex-container {
display: flex; / Flexbox 컨테이너로 설정 /
justify-content: space-around; / 아이템 간의 간격을 고르게 배치 /
}
.item {
background-color: lightblue; / 배경색 설정 /
padding: 20px; / 패딩 추가 /
}
실행 결과: 1, 2, 3이 수평으로 배열되어 균등한 간격을 가지고 배치됩니다.
display: flex;: 해당 요소를 Flexbox 컨테이너로 설정합니다.justify-content: space-around;: 자식 요소들 사이에 균등한 간격을 부여합니다..item: 각 아이템의 스타일을 적용합니다.
4. 실전 활용 예제
쇼핑몰에서 장바구니 구현
<div class="cart-container">
<div class="cart-item">상품 1</div>
<div class="cart-item">상품 2</div>
<div class="cart-item">상품 3</div>
</div>
.cart-container {
display: flex; / Flexbox로 설정 /
flex-direction: column; / 세로 방향으로 배치 /
}
.cart-item {
margin: 10px 0; / 각 상품 간의 여백 /
background-color: #f3f3f3; / 배경색 설정 /
padding: 15px; / 패딩 추가 /
}
이 예제는 쇼핑몰에서 장바구니에 담긴 여러 상품을 세로로 나열하는 방식입니다.
Grid를 이용한 갤러리 레이아웃
<div class="gallery">
<div class="gallery-item">이미지 1</div>
<div class="gallery-item">이미지 2</div>
<div class="gallery-item">이미지 3</div>
<div class="gallery-item">이미지 4</div>
</div>
.gallery {
display: grid; / Grid로 설정 /
grid-template-columns: repeat(2, 1fr); / 2열 구성 /
gap: 10px; / 요소 간의 간격 /
}
.gallery-item {
background-color: lightcoral; / 배경색 설정 /
padding: 20px; / 패딩 추가 /
}
이 예제는 사진 갤러리처럼 다양한 이미지를 격자 형태로 나열하는 방식입니다.
5. 흔한 실수와 주의사항
실수 1: Flexbox에서 flex-direction 속성 누락
<div class="flex-container">
<div class="item">1</div>
<div class="item">2</div>
</div>
.flex-container {
display: flex; / flex-direction이 기본값인 row로 설정됨 /
}
flex-direction: column;을 추가하여 세로 방향으로 나열하도록 설정합니다.실수 2: Grid의 행과 열 설정 실수
.gallery {
display: grid;
grid-template-columns: 1fr; / 한 열로 설정하여 모든 요소가 수직으로 나열됨 /
}
grid-template-columns: repeat(2, 1fr);으로 2열 구성을 설정합니다.6. 정리
다음에 학습하면 좋은 주제: CSS 애니메이션, 반응형 웹 디자인, SCSS/Sass