기타/Bootstrap

[Bootstrap] Flex

glorypang 2025. 3. 25. 23:55
728x90
반응형
SMALL

1. Flex 컨테이너 만들기

  • Bootstrap 5는 float 대신 Flexbox 기반 레이아웃을 사용
  • `.d-flex`: 블록형 Flex 컨테이너
<div class="d-flex p-3 bg-secondary text-white">
  <div class="p-2 bg-info">Flex item 1</div>
  <div class="p-2 bg-warning">Flex item 2</div>
  <div class="p-2 bg-primary">Flex item 3</div>
</div>

 

 

  • `.d-inline-flex`: 인라인형 Flex 컨테이너
<div class="d-inline-flex p-3 bg-secondary text-white">
  <div class="p-2 bg-info">Flex item 1</div>
  <div class="p-2 bg-warning">Flex item 2</div>
  <div class="p-2 bg-primary">Flex item 3</div>
</div>


2. 방향 설정

방향  클래스
가로 (기본) `.flex-row`
가로 반대 `.flex-row-reverse`
세로 `.flex-column`
세로 반대 `.flex-column-reverse`
<div class="d-flex flex-row bg-secondary">
  <div class="p-2 bg-info">Flex item 1</div>
  <div class="p-2 bg-warning">Flex item 2</div>
  <div class="p-2 bg-primary">Flex item 3</div>
</div>

<div class="d-flex flex-row-reverse bg-secondary">
  <div class="p-2 bg-info">Flex item 1</div>
  <div class="p-2 bg-warning">Flex item 2</div>
  <div class="p-2 bg-primary">Flex item 3</div>
</div>

 

<div class="d-flex flex-column">
  <div class="p-2 bg-info">Flex item 1</div>
  <div class="p-2 bg-warning">Flex item 2</div>
  <div class="p-2 bg-primary">Flex item 3</div>
</div>

<div class="d-flex flex-column-reverse">
  <div class="p-2 bg-info">Flex item 1</div>
  <div class="p-2 bg-warning">Flex item 2</div>
  <div class="p-2 bg-primary">Flex item 3</div>
</div>


3. 정렬 - 주축 기준 (`justify-content-*`)

클래스 설명
`.justify-content-start` 좌측 정렬 (기본)
`.justify-content-end` 우측 정렬
`.justify-content-center` 가운데 정렬
`.justify-content-between` 양 끝 + 사이 여백
`.justify-content-around` 양 옆 동일 여백
<div class="d-flex justify-content-start">...</div>
<div class="d-flex justify-content-end">...</div>
<div class="d-flex justify-content-center">...</div>
<div class="d-flex justify-content-between">...</div>
<div class="d-flex justify-content-around">...</div>


4. 너비/공간 분배

4.1 같은 너비로 채우기

  • `.flex-fill`: 모든 항목을 같은 너비로
<div class="d-flex">
  <div class="p-2 bg-info flex-fill">Flex item 1</div>
  <div class="p-2 bg-warning flex-fill">Flex item 2</div>
  <div class="p-2 bg-primary flex-fill">Flex item 3</div>
</div>

 

4.2 다른 너비로 채우기

  • `.flex-grow-1`: 남는 공간 모두 차지
  • `.flex-shrink-1`: 공간 부족 시 줄어듬
<div class="d-flex">
  <div class="p-2 bg-info">Flex item 1</div>
  <div class="p-2 bg-warning">Flex item 2</div>
  <div class="p-2 bg-primary flex-grow-1">Flex item 3</div>
</div>

 

4.3 순서 변경

  • `.order-0 ~ .order-5`: 시각적 순서 변경
<div class="d-flex bg-secondary">
  <div class="p-2 bg-info order-3">Flex item 1</div>
  <div class="p-2 bg-warning order-2">Flex item 2</div>
  <div class="p-2 bg-primary order-1">Flex item 3</div>
</div>

 

4.4 자동 여백

  • `.ms-auto`, `.me-auto`: 마진을 이용한 정렬 (start / end)
<div class="d-flex bg-secondary">
  <div class="p-2 ms-auto bg-info">Flex item 1</div>
  <div class="p-2 bg-warning">Flex item 2</div>
  <div class="p-2 bg-primary">Flex item 3</div>
</div>

<div class="d-flex bg-secondary">
  <div class="p-2 bg-info">Flex item 1</div>
  <div class="p-2 bg-warning">Flex item 2</div>
  <div class="p-2 me-auto bg-primary">Flex item 3</div>
</div>


5. 줄 바꿈

클래스  설명
`.flex-nowrap` 줄 바꿈 없음 (기본)
`.flex-wrap` 자동 줄 바꿈
`.flex-wrap-reverse` 줄 바꿈 + 역방향
<div class="d-flex flex-wrap">..</div>

 

<div class="d-flex flex-wrap-reverse">..</div>

 

<div class="d-flex flex-nowrap">..</div>


6. 수직 정렬 - 한 줄일 때 (`align-items-*`)

클래스  설명
`.align-items-start` 위 정렬
`.align-items-end` 아래 정렬
`.align-items-center` 세로 가운데 정렬
`.align-items-baseline` 텍스트 기준선 정렬
`.align-items-stretch` 높이 자동 확장 (기본)

 

<div class="d-flex align-items-start">..</div>

 

<div class="d-flex align-items-end">..</div>

 

<div class="d-flex align-items-center">..</div>

 

<div class="d-flex align-items-baseline">..</div>

 

<div class="d-flex align-items-stretch">..</div>

 


7. 수직 정렬 - 여러 줄일 때 (`align-content-*`)

  • `.flex-wrap`이 있어야 작동
  • start, end, center, between, around, stretch 등 사용 가능
<div class="d-flex flex-wrap align-content-start">..</div>

 

<div class="d-flex flex-wrap align-content-end">..</div>

 

<div class="d-flex flex-wrap align-content-center">..</div>

 

<div class="d-flex flex-wrap align-content-around">..</div>

 

<div class="d-flex flex-wrap align-content-stretch">..</div>


8. 개별 항목 정렬 (`align-self-*`)

  • 각 flex 항목마다 개별 정렬 설정 가능
  • start / end / center / stretch / baseline 등
<div class="d-flex bg-light" style="height:150px">
  <div class="p-2 border">Flex item 1</div>
  <div class="p-2 border align-self-center ">Flex item 2</div>
  <div class="p-2 border">Flex item 3</div>
</div>


9. 반응형 Flex 클래스

  • 모든 Flex 클래스는 `sm`, `md`, `lg`, `xl`, `xxl`로 확장 가능
  • `*`은 sm, md, lg, xl 또는 xxl로 대체될 수 있으며, 소형, 중형, 대형, 초대형, 초대형 화면을 나타냄
<div class="d-md-flex justify-content-md-between">...</div>
<div class="flex-lg-column">...</div>
기능  예시 클래스
방향 설정 `.flex-*-row`, `.flex-*-column`
정렬 `.justify-content-*-center`
줄바꿈 `.flex-*-wrap`
순서 `.order-*-1, .order-*-2`
너비 `.flex-*-fill`

 

728x90
반응형
LIST