CSS Flexbox 생성기
Flexbox는 1차원 레이아웃의 표준입니다: 카드 줄, 내비게이션 바, 가운데 정렬 히어로, 폼 등. 컨테이너-아이템 모델은 강력하지만 열몇 개의 속성이 직관적이지 않은 방식으로 서로 영향을 주고받습니다. 이 생성기는 컨테이너 설정의 어려움을 덜어 줍니다. flex-direction, justify-content, align-items, flex-wrap, gap을 고르면 스타일시트에 바로 붙여 넣을 수 있는 깔끔한 CSS 규칙이 나옵니다.
CSS 만드는 방법
-
1
방향 선택
row, column 또는 반대 방향 변형을 고릅니다. 아이템이 흐르는 축인 flex-direction을 정합니다.
-
2
justify-content 설정
주축에서 아이템을 어떻게 배분할지 고릅니다: 시작, 가운데, space-between, space-around, 끝.
-
3
align-items 설정
교차축에서 아이템을 어떻게 정렬할지 고릅니다: stretch, 시작, 가운데, 끝.
-
4
gap과 wrap 설정
아이템 사이의 간격을 픽셀로 넣고, 아이템이 다음 줄로 넘어갈지 정합니다.
-
5
CSS 복사
생성기가 모든 속성을 담은 컨테이너 규칙을 출력하므로 스타일시트에 붙여 넣기만 하면 됩니다.
컨테이너 속성
| 속성 | 값 | 효과 |
|---|---|---|
flex-direction |
row / column / row-reverse / column-reverse | 주축 |
flex-wrap |
nowrap / wrap / wrap-reverse | 아이템 줄바꿈 여부 |
justify-content |
flex-start / center / flex-end / space-between / space-around / space-evenly | 주축 분배 |
align-items |
flex-start / center / flex-end / baseline / stretch | 각 줄의 교차축 정렬 |
align-content |
같은 값 + space-between / space-around | 줄바꿈 시 줄들의 교차축 분배 |
gap (row-gap, column-gap) |
길이 | 아이템 간 간격 |
아이템 속성
| 속성 | 값 | 효과 |
|---|---|---|
flex-grow |
0 이상(단위 없음) | 남은 공간을 흡수할 비율 |
flex-shrink |
0 이상(단위 없음) | 오버플로우 시 줄어들 비율 |
flex-basis |
길이 또는 auto | grow/shrink 이전의 시작 크기 |
flex |
단축형(1 1 auto 등) |
위 세 가지를 한 번에 |
align-self |
auto / flex-start / center / flex-end / baseline / stretch | 단일 아이템에 대해 align-items 재정의 |
order |
정수 | DOM 변경 없이 시각적 재배치 |
flex: 1 트릭
flex: 1은 flex: 1 1 0%의 단축형입니다. 아이템이:
- 남은 공간을 채우도록 늘어나고(grow: 1)
- 필요하면 줄어들며(shrink: 1)
- 0 크기에서 시작합니다(basis: 0%)
동일한 너비의 컬럼이라면 모든 아이템에 flex: 1을 주면 완벽하게 균등 분할됩니다. 콘텐츠보다 작아지면 안 되는 사이드바라면 flex: 0 0 240px(grow/shrink 없음, basis 240px)를 사용하세요.
자주 쓰는 패턴
가운데 정렬 히어로
.hero {
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
}
좌측 로고, 우측 링크의 내비게이션 바
.nav {
display: flex;
align-items: center;
gap: 2rem;
}
.nav-links {
margin-left: auto; /* 오른쪽으로 밀기 */
display: flex;
gap: 1rem;
}
반응형 카드 줄
.card-row {
display: flex;
flex-wrap: wrap;
gap: 1.5rem;
}
.card {
flex: 1 1 260px; /* grow/shrink, 줄바꿈 전 최소 260px */
}
입력이 가변이고 버튼이 고정인 폼 필드
.field {
display: flex;
gap: 0.5rem;
}
.field input {
flex: 1;
}
.field button {
flex: 0 0 auto;
}
Flexbox vs. Grid
- Flexbox: 1차원(행 또는 열). 아이템 크기가 콘텐츠 기반이거나 단일 라인을 따라 공간을 분배할 때 가장 좋습니다.
- Grid: 2차원(명시적인 행과 열 트랙). 행과 열 구조가 동시에 있는 레이아웃에 가장 좋습니다.
내비게이션 바나 카드 스택은 Flexbox, 여러 행이 정렬된 제품 카드 그리드는 CSS Grid. 실제 페이지의 대부분은 두 가지를 함께 씁니다, Grid 페이지 레이아웃 안에 Flexbox 컴포넌트.
자주 만나는 함정
- 아이템이 컨테이너를 채우지 않음: 기본
align-items: stretch는 아이템에 고정 height가 없을 때만 적용됩니다. 명시적 height가 있으면 그 크기를 유지합니다. gap이 안 먹힘: 브라우저 지원을 확인하세요. Flex gap은 늦게 들어왔고 Safari 14.1 미만에서는 미지원이었습니다. 2024년 이후로는 보편적입니다.- 컬럼 flex의 자식이 줄어듦: flex 컬럼의 기본값
align-items: stretch가 자식을 컨테이너 너비로 늘립니다. 자식이 width를 지정하면 이를 깨고 나옵니다. order는 시각적일 뿐: 스크린 리더와 키보드 내비게이션은 DOM 순서를 따릅니다. 콘텐츠 의미를 바꾸기 위해order를 쓰지 마세요. 시각적 다듬기에만 사용합니다.
자주 묻는 질문
2차원 페이지 레이아웃(행과 열을 함께)은 Grid, 1차원 분배(내비 바, 버튼 줄, 스택)는 Flexbox. Grid 셀 안의 내부 레이아웃은 Flexbox. 대부분 복잡한 UI는 둘 다 씁니다.
flex-shrink 기본값이 1이지만 min-width 기본값이 auto로 콘텐츠 너비와 같기 때문입니다. 아이템에 min-width: 0(또는 min-inline-size: 0)을 설정해 본질 크기 아래로도 줄어들 수 있게 하세요.
컨테이너에 display: flex; justify-content: center; align-items: center;. 대부분의 “가운데 정렬” 케이스를 두 줄로 해결합니다.
모든 모던 브라우저에서 동작합니다. Safari는 늦었고(14.1, 2021년 4월), 오늘날 모든 주요 브라우저가 지원합니다. 가능하면 margin 기반 간격을 gap으로 교체하세요, 훨씬 단순합니다.
관련 도구
보색 찾기
어떤 입력에 대해서도 보색을 찾습니다. HSL 반대 색, 분할 보색 쌍, 그리고 접근성 있는 조합 제안을 반환합니다.
Webpack 설정 생성기
순수 JavaScript, React, Vue용 webpack 5 webpack.config.js를 만드세요. TypeScript, Babel, CSS 또는 Sass, 이미지, HtmlWebpackPlugin, 개발 서버, npm install 명령까지 함께 제공합니다.
텍스트 파일 인코딩 변환기
깨진 문자를 고치기 위해 텍스트를 UTF-8, UTF-16, Latin-1, Windows-1252 등 여러 인코딩 사이에서 변환하세요.
XML 포매터
일관된 들여쓰기로 XML 문서를 정렬 출력하고, 정확한 줄 번호로 적격성 오류를 잡아냅니다.
색상 혼합기
두 HEX 색상을 2-20개의 균등한 색상 견본으로 섞습니다. 양 끝 색상을 포함해 각 중간 색상을 대문자 HEX 코드로 확인하세요.
Protocol Buffers 디코더
hex, Base64, Base64URL, 텍스트 또는 파일의 Protobuf 와이어 형식 바이트를 브라우저에서 디코딩하고 정확한 필드 후보를 확인한 뒤 비공개 보고서로 내보냅니다.
이 도구는 다른 언어로도 제공됩니다
- CSS-Flexbox-Generator [DE]
- CSS Flexbox-generator [SV]
- Générateur CSS Flexbox [FR]
- CSS Flexbox-generator [NL]
- Generator Flexbox CSS [ID]
- Gerador de CSS Flexbox [PT]
- Generator flexboxa CSS [PL]
- ตัวสร้าง CSS Flexbox [TH]
- Trình tạo Flexbox CSS [VI]
- Generador de CSS Flexbox [ES]
- CSS Flexboxジェネレーター [JA]
- مولد CSS Flexbox [AR]
- CSS Flexbox 生成器 [ZH]
- CSS Flexbox Generator [EN]
- Generatore CSS Flexbox [IT]
- CSS Flexbox Üretici [TR]
- Генератор CSS Flexbox [RU]