Flexbox 생성기

시각적 컨트롤러로 flex 컨테이너와 아이템을 구성하고, 실시간으로 반응하는 레이아웃을 확인한 뒤 클릭 한 번으로 CSS를 복사해 보세요.

프리셋
컨테이너 (Container)
방향 (Direction)
줄바꿈 (Wrap)
콘텐츠 정렬 (Justify content)
아이템 정렬 (Align items)
아이템 설정
아이템 1
개별 정렬 (Align self)
CSS
컨테이너와 아이템을 조절하여 레이아웃을 디자인해 보세요.

레이아웃은 브라우저에서 직접 빌드됩니다. 설정한 어떤 데이터도 BroBroGo 서버로 전송되지 않습니다.

자주 묻는 질문

justify-content와 align-items의 차이는 무엇인가요?

justify-content는 주축(main axis, 행 또는 열이 흐르는 방향)을 따라 아이템을 배치하고, align-items는 교차축(cross axis, 주축과 수직인 방향)을 따라 배치합니다. 방향을 row에서 column으로 바꾸면 두 축이 서로 교차하므로, justify-content는 위아래 방향으로 작동하고 align-items는 좌우 방향으로 작동하게 됩니다.

개별 아이템 제어는 어떻게 작동하나요?

번호로 아이템을 선택한 뒤, 남는 공간을 채우기 위해 늘어나는 비율(grow), 공간이 부족할 때 줄어드는 비율(shrink), 시작 크기(basis), 그리고 개별 교차축 정렬(align-self)을 설정해 보세요. order 속성을 사용하면 HTML 구조를 건드리지 않고 화면에 표시되는 순서만 앞뒤로 바꿀 수 있습니다. 실제로 변경한 아이템에 대해서만 CSS 규칙이 생성됩니다.

wrap과 align-content는 언제 중요해지나요?

줄바꿈(wrap)을 끄면 모든 아이템이 한 줄에 강제로 배치되어 너비가 좁게 찌그러질 수 있습니다. 줄바꿈을 켜면 공간이 부족한 아이템들이 다음 줄로 넘어가며, 이때 align-content가 작동하여 여러 줄 전체의 간격을 조절하게 됩니다. Gap은 마진(margin) 없이도 아이템 사이 및 줄 사이의 간격을 깔끔하게 설정해 줍니다.

CSS Flexbox 레이아웃의 시각적 구성

CSS Flexbox는 웹 페이지의 요소를 효율적으로 배치하고 정렬하기 위해 사용하는 레이아웃 모델입니다. 이 도구는 사용자가 flex 컨테이너와 내부 아이템을 시각적으로 설정할 수 있도록 돕습니다. 컨트롤러를 조절하여 레이아웃의 변화를 실시간으로 관찰하고, 디자인에 필요한 CSS 코드를 즉시 생성할 수 있습니다.

이 도구는 브라우저에서 직접 레이아웃을 빌드하는 방식으로 작동합니다. 사용자가 설정한 어떠한 데이터도 서버로 전송되지 않으므로 안심하고 사용할 수 있습니다.


컨테이너 (Container) 설정과 축의 관계

Flexbox 레이아웃의 핵심은 주축(main axis)과 교차축(cross axis)의 관계를 이해하는 것입니다. 방향 (Direction) 설정을 행 (Row)에서 열 (Column)로 전환하면 주축과 교차축이 서로 바뀌며, 이에 따라 콘텐츠 정렬 (Justify content)과 아이템 정렬 (Align items)의 작동 방식도 전환됩니다.

컨테이너 레벨에서 제어할 수 있는 속성은 다음과 같습니다:

  • 방향 (Direction): 행 (Row), 행 역순 (Row reverse), 열 (Column), 열 역순 (Column reverse) 중 선택하여 주축의 방향을 결정합니다.
  • 줄바꿈 (Wrap): 줄바꿈 없음 (No wrap), 줄바꿈 (Wrap), 역순 줄바꿈 (Wrap reverse)을 설정합니다. 줄바꿈 없음 (No wrap) 상태에서는 모든 아이템이 한 줄에 강제로 배치됩니다. 줄바꿈 (Wrap)을 활성화하면 공간이 부족한 아이템들이 다음 줄로 넘어가게 됩니다.
  • 콘텐츠 정렬 (Justify content): 주축을 기준으로 아이템들을 시작 (Start), 끝 (End), 가운데 (Center), 양끝 정렬 (Space between), 균등 여백 (Space around), 동일 여백 (Space evenly)으로 배치합니다.
  • 아이템 정렬 (Align items): 교차축을 기준으로 아이템들을 시작 (Start), 끝 (End), 가운데 (Center), 늘리기 (Stretch), 베이스라인 (Baseline)으로 정렬합니다.
  • 콘텐츠 정렬 (Align content): 줄바꿈이 발생하여 여러 줄이 되었을 때, 교차축을 기준으로 줄 간의 간격을 시작 (Start), 끝 (End), 가운데 (Center), 늘리기 (Stretch), 양끝 정렬 (Space between), 균등 여백 (Space around), 동일 여백 (Space evenly)으로 조절합니다.
  • 간격 (Gap): 수치 값을 입력하여 아이템 사이 및 줄 사이의 간격을 설정합니다.

아이템 설정과 개별 속성 제어

컨테이너 내부의 개별 아이템들은 각각 고유한 정렬 및 크기 확장 규칙을 가질 수 있습니다. 아이템 추가 버튼을 클릭하면 새로운 아이템(예: "아이템 5")이 화면에 추가됩니다.

각 아이템에 대해 설정할 수 있는 속성은 다음과 같습니다:

  • 순서 (Order): 수치 값을 입력하여 HTML 구조를 바꾸지 않고 시각적 표시 순서를 변경합니다.
  • 증가 비율 (Grow): 컨테이너 내부의 남는 공간을 나누어 가질 비율을 수치로 지정합니다.
  • 축소 비율 (Shrink): 공간이 부족할 때 아이템이 줄어드는 비율을 수치로 지정합니다.
  • 기본 크기 (Basis): 수치 값 또는 자동 기준 (Auto)을 입력하여 아이템의 기본 크기를 설정합니다.
  • 개별 정렬 (Align self): 자동 (Auto), 시작 (Start), 끝 (End), 가운데 (Center), 늘리기 (Stretch), 베이스라인 (Baseline) 중 선택하여 해당 아이템만 교차축 기준으로 개별 정렬합니다.

이 도구는 효율적인 코드 생성을 위해 속성값이 기본값에서 변경된 아이템에 대해서만 개별 CSS 규칙을 생성합니다.

실시간 프리셋 레이아웃 패턴

이 도구는 웹 디자인에서 자주 사용되는 대표적인 레이아웃 패턴들을 프리셋 형태로 제공하여 빠른 작업을 돕습니다.

  • 가운데 정렬: 요소를 화면 정중앙에 배치하는 레이아웃입니다.
  • 네비게이션 바: 상단 메뉴 요소를 가로로 정렬하고 간격을 균등하게 분배합니다.
  • 세로 쌓기: 요소를 수직으로 차례대로 정렬하는 레이아웃입니다.
  • 카드 레이아웃: 여러 개의 카드 형태 요소를 그리드 형태로 배치하고 줄바꿈을 적용합니다.
  • 사이드바: 메인 콘텐츠 영역 옆에 고정되거나 유연하게 조절되는 측면 영역을 구성합니다.

원하는 레이아웃을 시각적으로 완성한 후 CSS 복사 버튼을 클릭하면 클립보드에 코드가 저장되며, 버튼 상태가 "Copied"로 변경됩니다.


자주 묻는 질문 (FAQ)

Q. justify-content와 align-items의 차이는 무엇인가요?
A. justify-content는 주축(main axis, 행 또는 열이 흐르는 방향)을 따라 아이템을 배치하고, align-items는 교차축(cross axis, 주축과 수직인 방향)을 따라 배치합니다. 방향을 row에서 column으로 바꾸면 두 축이 서로 교차하므로, justify-content는 위아래 방향으로 작동하고 align-items는 좌우 방향으로 작동하게 됩니다.

Q. 개별 아이템 제어는 어떻게 작동하나요?
A. 번호로 아이템을 선택한 뒤, 남는 공간을 채우기 위해 늘어나는 비율(grow), 공간이 부족할 때 줄어드는 비율(shrink), 시작 크기(basis), 그리고 개별 교차축 정렬(align-self)을 설정해 보세요. order 속성을 사용하면 HTML 구조를 건드리지 않고 화면에 표시되는 순서만 앞뒤로 바꿀 수 있습니다. 실제로 변경한 아이템에 대해서만 CSS 규칙이 생성됩니다.

Q. wrap과 align-content는 언제 중요해지나요?
A. 줄바꿈(wrap)을 끄면 모든 아이템이 한 줄에 강제로 배치되어 너비가 좁게 찌그러질 수 있습니다. 줄바꿈을 켜면 공간이 부족한 아이템들이 다음 줄로 넘어가며, 이때 align-content가 작동하여 여러 줄 전체의 간격을 조절하게 됩니다. Gap은 마진(margin) 없이도 아이템 사이 및 줄 사이의 간격을 깔끔하게 설정해 줍니다.