CSS - Flexbox

ㅂㅈㄷㅂ123·2022년 7월 5일
2
post-thumbnail

Flexbox

  • flex는 잘 구부러지는 유연하다는 뜻이다.
  • 박스를 유연하게 늘리거나 줄여 레이아웃을 잡는데 의의가 있다.

display: flex

  • 부모 박스 요소에 적용해, 자식의 박스 방향과 크기를 결정하는 레이아웃 구성 방법

부모 요소에 적용해야 하는 Flexbox 속성

flex-direction: 정렬 축 정하기

  • 부모 요소에 설정해주는 속성으로, 자식 요소들을 정렬할 정렬 축을 정한다.
  • 아무 설정이 없을 시 기본적으로 가로 정렬.
  • row(기본값), column, row-reverse, column-reverse

flex-wrap : 줄 바꿈 설정하기

  • 하위 요소들의 크기가 상위 요소의 크리를 넘으면 자동 줄 바꿈을 할 것인지 정한다.
  • 아무 설정이 없을 시 줄 바꿈을 하지 않는다.
  • nowrap(기본값), wrap, wrap-reverse

justify-content: 축 수평 방향 정렬

  • 자식 요소들을 축의 수평 방향으로 어떻게 정렬할 것인지 정한다.
  • 가로 방향일 때, 가로 방향으로 어떻게 정렬할 것인지
  • 세로 방향일 때, 세로 방향으로 어떻게 정렬할 것인지 정한다.
  • flex-direction의 방향에 따라 적용되는 방향이 달라진다.
  • flex-start, flex-end, center, space-between, space-around

align-items: 축 수직 방향 정렬

  • 자식 요소들의 축의 수직 방향으로 어떻게 정렬할 것인지 정한다.
  • 가로 방향일 때, 세로 방향으로 어떻게 정렬할 것인지
  • 세로 방향일 때, 가로 방향으로 어떻게 정렬한 것인지
  • flex-direction의 방향에 따라 적용되는 방향이 달라진다.
  • stretch, flex-start, flex-end, center, baseline

자식 요소에 적용해야 하는 Flexbox 속성

flex 속성의 값

  • flex: <grow(팽창지수)> <shrink(수축지수)> <basis(기본 크기)>
  • 설정이 없을 시 flex: 0 1 auto; (기본값) 적용
  • 세 가지 값을 한 번에 설정할 필요 없이, 각 값을 따로 지정할 수 있다.
flex-grow: 0;
flex-shrink: 1;
flex-basis: auto;
grow
  • 정렬축 방향으로 빈 공간이 있을 때, 각 자식 요소들이 늘어나서 남는 공간을 차지할 비율을 정하는 것
  • 총합에서의 비율

shrink

  • grow와 반대로, 설정한 비율만큼 박스 크기가 작아진다.
  • 만약 grow 속성으로 비율을 변경하는 경우, flex-shrink 속성은 기본값인 1로 두어도 무방

basis

  • 박스의 기본 값을 말한다. 즉, grow나 shrink에 의해 늘어나거나 줄어들기 전에 가지는 기본 크기
  • grow 속성 값이 0인 경우에만, flex-basis 속성 값이 유지 된다.
  • basis로 설정된 크기가 항상 유지되는 것은 아니다. grow 속성 값이 양수인 경우, 늘어나면서 basis 속성에 적용한 값보다 커질 수도 있기 때문.

참고

  • width와 flex-basis를 동시에 적용하는 경우, flex-basis가 우선됨.
  • 콘텐츠가 많아 자식 박스가 넘치는 경우, width가 정확한 크기를 보장하지 않음.
  • (flex-basis를 사용하지 않는다면) 콘텐츠가 많아 자식 박스가 넘치는 경우를 대비해, width 대신 max-width를 쓸 수 있음.
profile
ㅂㅈㄷㅂㅈㄷ

0개의 댓글

관련 채용 정보