레이아웃을 위한 Flexbox
Flexbox를 사용해 행이나 열에서 항목을 정렬하고 공간을 분배하며 float 기법 없이 콘텐츠를 줄바꿈합니다.
레이아웃을 위한 Flexbox은(는) CoddyKit의 무료 Frontend Academy 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Frontend Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Frontend Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
플렉스박스란 무엇인가요?
플렉스박스(Flexible Box Layout)는 1차원 레이아웃을 위한 CSS 레이아웃 모델입니다. 한 줄 또는 한 열을 따라 공간을 분배하도록 설계되었습니다. float 기반 레이아웃으로는 깔끔하게 해결하기 어려웠던 문제를 해결합니다.
플렉스박스 활성화
container에 display: flex를 적용하십시오. 직계 자식은 자동으로 플렉스 항목이 됩니다. 이러한 항목의 자식에는 영향을 주지 않습니다.
.container {
display: flex;
}
/* All direct children are now flex items */flex-direction
주축을 설정합니다. row(기본값): 항목을 왼쪽에서 오른쪽으로 배치합니다. row-reverse: 오른쪽에서 왼쪽으로 배치합니다. column: 위에서 아래로 배치합니다. column-reverse: 아래에서 위로 배치합니다.
.stack { display: flex; flex-direction: column; }
.row { display: flex; flex-direction: row; }justify-content — 주축 정렬
주축을 따라 공간을 분배합니다. flex-start(기본값), flex-end, center, space-between, space-around, space-evenly를 사용할 수 있습니다.
.nav {
display: flex;
justify-content: space-between; /* logo left, links right */
}
.centered {
display: flex;
justify-content: center; /* items in the middle */
}align-items — 교차축 정렬
주축에 수직인 교차축을 따라 항목을 정렬합니다. stretch(기본값), center, flex-start, flex-end, baseline을 사용할 수 있습니다.
.card {
display: flex;
align-items: center; /* vertically center content */
}gap 속성
gap: row-gap column-gap은 margin을 사용하지 않고 플렉스 항목 사이에 공간을 추가합니다. margin을 이용한 우회 방식보다 훨씬 깔끔합니다. 최신 브라우저에서 폭넓게 지원됩니다.
.grid {
display: flex;
flex-wrap: wrap;
gap: 24px; /* 24px in all directions between items */
gap: 16px 24px; /* row-gap column-gap */
}flex-wrap
기본적으로 플렉스 항목은 한 줄에 맞도록 좁아집니다. flex-wrap: wrap을 사용하면 항목이 맞지 않을 때 새 줄로 넘어갑니다. gap과 함께 사용하면 간단한 반응형 그리드를 만들 수 있습니다.
.cards {
display: flex;
flex-wrap: wrap;
gap: 16px;
}
.card {
flex: 1 1 280px; /* grow, shrink, min-width */
}항목의 flex 단축 속성
플렉스 항목에 flex: grow shrink basis를 사용합니다. flex: 1은 1 1 0%의 단축 표현으로, 항목을 같은 비율로 늘리고 콘텐츠 크기는 무시합니다. flex: 0 0 200px은 크기가 고정된 200px 항목을 만듭니다.
.sidebar { flex: 0 0 240px; } /* fixed width */
.main { flex: 1; } /* takes remaining space */align-self
플렉스 항목의 align-self는 해당 항목 하나에 대해 container의 align-items 설정을 덮어씁니다. 형제 항목과 다르게 한 항목만 정렬할 때 유용합니다.
.container { display: flex; align-items: center; }
.tall-item { align-self: flex-start; }order 속성
order는 HTML 순서를 바꾸지 않고 플렉스 항목의 화면 표시 순서를 제어합니다. 기본값은 0이며 값이 낮을수록 먼저 표시됩니다. 화면 순서와 DOM/읽기 순서가 달라지므로 신중하게 사용하십시오.
플렉스박스로 가운데 정렬하기
element를 가로와 세로 모두 가운데에 배치하는 가장 간단한 방법은 부모를 display: flex; justify-content: center; align-items: center로 설정하는 것입니다.
.overlay {
position: fixed;
inset: 0; /* shorthand for top/right/bottom/left: 0 */
display: flex;
justify-content: center;
align-items: center;
background: rgba(0,0,0,0.5);
}빠른 확인
주축을 따라 항목 사이의 공간을 분배하는 플렉스박스 속성은 무엇입니까?
복습: 플렉스박스 기초
container에 display: flex를 설정합니다. 축에는 flex-direction: row 또는 column을 사용합니다. 주축 간격에는 justify-content를 사용합니다. 교차축에는 align-items를 사용합니다. 여백에는 gap을 사용합니다. 여러 줄에는 flex-wrap을 사용합니다. 항목을 늘릴 때는 flex 단축 속성을 사용합니다. 유연한 1차원 레이아웃 시스템입니다.
자주 묻는 질문
“레이아웃을 위한 Flexbox” 강의는 무료인가요?
네 — “레이아웃을 위한 Flexbox” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Frontend Academy 강의 전체를 잠금 해제할 수 있습니다. Frontend Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“레이아웃을 위한 Flexbox”에서 뭘 배우나요?
Flexbox를 사용해 행이나 열에서 항목을 정렬하고 공간을 분배하며 float 기법 없이 콘텐츠를 줄바꿈합니다. 브라우저에서 직접 실행하는 실습 코드로 Frontend Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Frontend Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Frontend Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.
“레이아웃을 위한 Flexbox” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Frontend Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Frontend Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 뷰포트 메타 태그
- 레이아웃을 위한 Flexbox
- 레이아웃을 위한 CSS Grid
- 미디어 쿼리와 모바일 우선 개발