프로그래밍/css 심화

CSS 심화 공부(11) - flex item 속성(5) : flex

lamarcK 2025. 3. 13. 20:26

flex 속성

flex 속성은 플렉스 아이템의 크기 조절 방식을 한 번에 설정하는 축약 속성이다.

flex-grow, flex-shrink, flex-basis 세 가지 속성을 결합하여 사용한다.

flex 속성의 구성 요소

  • flex-grow:
    • 플렉스 컨테이너 안에 남는 공간이 있을 때 플렉스 아이템이 얼마나 늘어날지를 결정합니다.
    • 값이 0이면 아이템이 늘어나지 않고, 양수이면 해당 비율만큼 늘어납니다.
  • flex-shrink:
    • 플렉스 컨테이너 안에 공간이 부족할 때 플렉스 아이템이 얼마나 줄어들지를 결정합니다.
    • 값이 0이면 아이템이 줄어들지 않고, 양수이면 해당 비율만큼 줄어듭니다.
  • flex-basis:
    • 플렉스 아이템의 초기 크기를 설정합니다.
    • auto 또는 길이 단위(px, %, em 등)를 사용하여 설정할 수 있습니다.

flex 속성의 사용법

  • flex: none;:
    • flex-grow: 0; flex-shrink: 0; flex-basis: auto;와 동일합니다.
    • 아이템이 늘어나거나 줄어들지 않고, 초기 크기는 내용물에 따라 결정됩니다.
  • flex: auto;:
    • flex-grow: 1; flex-shrink: 1; flex-basis: auto;와 동일합니다.
    • 아이템이 늘어나고 줄어들며, 초기 크기는 내용물에 따라 결정됩니다.
  • flex: [flex-grow] [flex-shrink] [flex-basis];:
    • 세 가지 값을 순서대로 설정합니다.
    • flex-shrink와 flex-basis는 생략할 수 있습니다.
    • 예: flex: 1 1 200px; 또는 flex: 2;

.container1{
    display: flex;
    border: 2px black solid;
    width: fit-content;
}

.item1 {
    flex: 1 1 200px;
  }
  
  .item2 {
    flex: 1 1 50%;
  }
  
  .item3 {
    flex: 1 1 10em;
  }

.item1, .item2, .item3
{border:  1px black solid;}

각각 예시에 따라 크기가 결정되었는데

50%라는 것은 초기 너비가 없기 때문에 콘텐츠 크기의 50%라는 뜻이다.

  .item2 {
    flex: 1 1 100%;
  }

크기를 100%로 설정하면 콘텐츠 크기만큼 초기 크기가 커진다.