티스토리 뷰

CSS

[CSS] Flexbox

viscachas 2024. 7. 22. 00:49

Flexbox 구성 요소

- 하나의 Flex container와 여러 개의 Flex item으로 구성

- 부모 요소에 flex를 적용하면 모든 직계 자식이 플렉스 항목이 됨

<div class="container">
  <div class="item">1</div>
  <div class="item">2</div>
  <div class="item">3</div>
</div>
.container {
  display: flex;
}

.item {
  flex: 1;
}

container에 적용할 수 있는 속성

1. flex-direction: 기본값은 row이며, 좌우로 배치됨 (row면 main axis는 좌우, column이면 상하)

- row-reverse로 설정하면, 반대쪽 구석에서 시작하여 역방향 대열이 됨

 

2. justify-content: main axis를 기준으로 정렬, flex-direction가 row면 좌우로 정렬

- 기본값은 flex-start로 item을 main axis의 맨 앞으로 정렬해 줌

- 주로 space-between를 씀 (양 끝 배치 후 나머지는 똑같은 간격으로 배치하는 속성값)

 

3. align-items: cross axis를 기준으로 정렬, flex-direction가 row면 상하로 정렬

- 기본값은 stretch로 container의 높이 또는 너비만큼 늘려줌

flex-direction가 row면 높이만큼 늘어남

 

4. flex-wrap: containter 영역을 벗어나는지를 고려하여 배치

- nowarp: item들을 containter 영역을 벗어나더라도 강제로 한줄에 배치

- wrap: 가능한 영역 내에서 벗어나지 않고 여러 행으로 걸쳐서 배치

- wrap-reverse: wrap과 같지만 방향이 반대로 배치됨

 

5. flex-flow: flex-direction과 flex-wrap 속성의 단축 속성

flex-flow: row wrap;
flex-flow: row-reverse nowrap;
flex-flow: column wrap-reverse;
flex-flow: column wrap;

 

item에 적용할 수 있는 속성

1. flex: flex-grow, flex-shrink, flex-basis 속성을 한 번에 적용할 수 있도록 해줌

- main axis 기준으로 공간 배분을 위해 사용됨

- 모든 item에 flex:1 을 주면 공백을 균등하게 나눠서 점유

2. flex-grow: item이 main axis 상에 공백을 얼마나 점유할지를 지정

3. flex-shrink: item이 main axis 상에 공백이 부족하면, 공간을 얼마나 양보할지를 지정

 

4. flex-basis: item이 main axis 상에 공백을 최소 얼마나 점유할지를 지정

 

 

 

 

+

- 본인을 한가운데 두기 위해 자식 요소가 아니라 본인한테 display: flex를 두는 경우가 많음

- 완전 한가운데까지는 아니면 그냥 패딩 사용하면 됨

 

++

gap은 양쪽 정렬하면 되니까  굳이 쓰지 않음. 

 

+++

align-content

- flexbox의 cross axis나 그리드, 블록 레벨에서 정렬할 때 씀

- align-items와 달리 두 줄이상의 전체 컨테이너를 정렬할 때 사용됨 

- start, center, space-between, space-around가 있음

 

 


[출처] https://www.daleseo.com/css-flexbox/

 

CSS 플렉스박스(Flexbox) 이해하기

Engineering Blog by Dale Seo

www.daleseo.com

https://developer.mozilla.org/ko/docs/Learn/CSS/CSS_layout/Flexbox

 

Flexbox - Web 개발 학습하기 | MDN

flexbox는 행과 열 형태로 항목 무리를 배치하는 일차원 레이아웃 메서드입니다. 항목은 부족한 공간에 맞추기 위해 축소되거나 여분의 공간을 채우기 위해 변형된다. 이 문서는 근간이 되는 내용

developer.mozilla.org

https://developer.mozilla.org/ko/docs/Web/CSS/flex

 

flex - CSS: Cascading Style Sheets | MDN

flex CSS 속성은 하나의 플렉스 아이템이 자신의 컨테이너가 차지하는 공간에 맞추기 위해 크기를 키우거나 줄이는 방법을 설정하는 속성입니다. flex는 flex-grow, flex-shrink, flex-basis의 단축 속성입니

developer.mozilla.org

https://developer.mozilla.org/ko/docs/Web/CSS/flex-wrap

 

flex-wrap - CSS: Cascading Style Sheets | MDN

CSS flex-wrap property는 flex-item 요소들이 강제로 한줄에 배치되게 할 것인지, 또는 가능한 영역 내에서 벗어나지 않고 여러행으로 나누어 표현 할 것인지 결정하는 속성입니다. 만약 영역 내에서 벗

developer.mozilla.org

 

 

'CSS' 카테고리의 다른 글

[CSS] transition  (1) 2024.07.22
[CSS] Display  (0) 2024.07.22
[CSS] Grid  (0) 2024.07.19
[CSS] 4. position  (0) 2024.07.18
[CSS] 3. Pseudo-classes  (1) 2024.07.18
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/12   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함