HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
📝
학습 TIL
/
📝
31일차 배운 것 정리
📝

31일차 배운 것 정리

대주제
CSS
작성완료
작성완료
전날 정리 노트 이동
다음 정리 노트 이동
주제
flex-items
날짜
May 2, 2022
1. CSS- Flex-Items1-1. flex-grow1-2. flex-shrink1-3. flex-basis1.4 flex1.5 order1.6 align-self1.7 요약 정리1.8 여백을 주는 방법 (gap , margin)

1. CSS- Flex-Items

1-1. flex-grow

default: 0 , 증가되는 너비의 비율을 나타내는 속성
  • 0일 경우, 증가되는 너비 비율이 없기 때문에, item의 너비 그대로 가짐
  • 1일 경우, 증가되는 너비 비율을 1:1:1 ... 로 가지게 됨
  • item 마다 서로 다른 flex-grow를 지정해주어, 너비의 비율을 지정해줄 수 있음 ( 1:2:1 )
주의사항
  • Item의 width 전체크기에 대한 비중이 아니라, 기본 item의 너비를 제외한 부분을 해당 비율로 가져가는 것임
    • notion image
    • Item의 전체 width를 기준으로 일정비율을 마추기 위해서는, item의 width를 지워주어 (default:auto)로 만들어주어 해결할 수 있다.
  • flex-grow의 default값은 0이기 때문에, 다른 item들의 flex-grow를 지정하지 않은 상태에서, 하나의 item이 flex-grow가 1이상의 값만 가지면, 남은 모든 너비를 이 item이 가지게 된다.

1-2. flex-shrink

default: 1 , 요소의 감소 너비 비율을 나타내는 속성
  • flex-shrink: 0 의 경우 container의 너비가 작아진다면, item들이 줄어들지 않고, 크기를 유지하게 되어 튀어나가게 됨
  • item1, item2, item3 있을 때, item2의 경우 크기를 고정되도록 하고 싶다면, flex-shrink를 각각 1:0:1 로 지정한다.
    • item3을 훨씬 더 줄이고 싶다면 1:0:4 와 같이 비율조절이 가능하다.

1-3. flex-basis

default: auto , 요소의 기본 너비를 지정하는 속성
default: auto
  • 해당하는 요소의 width와 height를 사용하게 됨
flex-basis: 50px
  • flex Item의 너비를 50px로 조정함
  • flex-basis: 0 을 통해, 현재 item의 가로너비를 무시함으로써, flex-grow의 비율에 따른 너비를 지정할 수 있다.
 

1.4 flex

flex-grow, flex-shrink, flex-basis 3가지 속성을 한 번에 작성하는 단축 속성
각각의 default 값 = 0 1 auto;
주의사항
  • flex에서 flex-basis 값을 입력하지 않으면 default값인 auto가 아니라 0 을 사용하게 된다.
    • flex-basis:auto: Item의 width를 제외하고 남은 공간을 비율대로 가져감
    • flex-basis:0 : Item의 전체 너비를 기준으로 비율대로 가져감
  • 개별 요소를 모두 작성하는 것을 권장!
 

1.5 order

default:0, flex-Item들의 정렬 순서를 지정할 수 있다. 값이 클 수록 뒤쪽으로 배치하게 됨
order값은 음수도 가능하다.
  • before
    • notion image
  • After (첫번째 Item의 order === 1)
    • notion image
 

1.6 align-self

default: auto , container에 적용되어 있는 align-items값을 상속받는다. align-items 속성을 하나의 줄 단위가 아닌, 개별 Item들에 대하여 레이아웃을 잡을 때 사용
  • container의 align-items: flex-end 속성을 통해, 각각의 줄은 축의 끝 부분(아래)에 붙도록 정렬된 상태
    • 1번째 Item값만을 축의 시작부분으로 올리고 싶다면, align-self: flex-start; 로 개별지정하도록 함
      • notion image
 

1.7 요약 정리

notion image
  • flex-grow
    • default:0 , 증가너비 비율 속성
  • flex-shrink
    • default:1 , 감소너비 비율 속성
  • flex-basis
    • default:auto , Item의 기본 너비 값 지정 (auto는 지정된 width,height값 의미)
  • flex의 주의 사항
    • basis의 default값이 auto가 아닌 0이 할당됨 → 생략보다 다 같이 쓰는 것 권장
  • order
    • 값이 낮을 수록 앞에 위치하게 됨
  • align-self
    • 한 줄 별로 적용되는 align-items속성을 개별 아이템 단위로 적용할 수 있다.

1.8 여백을 주는 방법 (gap , margin)

gap 속성 을 통해 flex-Items간의 여백을 지정할 수 있다.
주의사항
  • gap은 최신속성이기 때문에, 하위호환성을 고려해야한다.
  • can I use 사이트에서 브라우저 호환성 고려할 수 있다.
margin
  • item들에 margin-right로 여백을 지정한 후, 마지막 item에 margin-right: 0px을 지정한다.