레이아웃 (Flexbox & Grid)
현대적인 웹 레이아웃을 구성하는 가장 강력한 두 가지 도구는 Flexbox와 Grid입니다.
1. Flexbox (Flexible Box)
1차원(행 또는 열) 레이아웃을 위한 도구입니다.
부모 요소 (Flex Container) 속성
display: flex;: Flexbox 활성화flex-direction: 정렬 방향 (row, column)justify-content: 메인축 정렬 (center, space-between, space-around)align-items: 교차축 정렬 (center, flex-start, flex-end)
.container {
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
}
2. Grid Layout
2차원(행과 열 모두) 레이아웃을 위한 도구입니다. 고정된 그리드 시스템을 만들 때 매우 유용합니다.
.grid-container {
display: grid;
grid-template-columns: 1fr 2fr 1fr; /* 3열로 나누기 */
grid-template-rows: auto 300px;
gap: 10px; /* 아이템 사이의 간격 */
}
3. Position 속성
요소를 특정한 위치에 고정하거나 겹치게 할 때 사용합니다.
static: 기본값relative: 기본 위치를 기준으로 상대적 이동absolute: 부모 요소(상위 요소 중 position이 static이 아닌 요소)를 기준으로 절절 위치fixed: 브라우저 창(Viewport)을 기준으로 고정sticky: 스크롤 도중 특정 위치에 도달하면 고정
4. 반응형 웹 디자인 (Media Query)
화면 크기에 따라 스타일을 변경합니다.
@media (max-width: 768px) {
/* 모바일 화면에서 적용될 스타일 */
.container {
flex-direction: column;
}
}
다음 장에서는 최신 CSS 트렌드와 Tailwind CSS에 대해 알아봅니다.