새소식

프론트엔드/html&css

flex-shrink, flex-grow

  • -

안녕하세요 lika-7입니다

이번시간에는 flex-shrink와 flex-grow에 대해 설명하겠습니다

flex-shrink란

flex-shrink는 CSS Flexbox 레이아웃에서 사용되는 속성 중 하나로, 플렉스 아이템(flex item)이 부모 컨테이너 내에서 축소(Shrink)될 수 있는 정도를 지정합니다.

이 속성은 플렉스 컨테이너(flex container) 내에서 공간 부족 시 어떻게 아이템들을 축소시킬지를 제어하는 데 사용됩니다.

코드

.flex-container {
  display: flex;
}

.flex-item {
  flex-shrink: 2; /* 아이템은 다른 아이템보다 2배로 많이 축소됨 */
}

이렇게 설정된 아이템은 부모 컨테이너의 공간이 부족할 때 더 많이 축소되며, 공간이 더 많을 때 다른 아이템보다 덜 축소됩니다.

flex-grow란

flex-grow는 CSS Flexbox 레이아웃에서 사용되는 속성 중 하나로, 플렉스 아이템(flex item)이 부모 컨테이너 내에서 어떻게 확장(Grow)될지를 지정합니다.

이 속성은 플렉스 컨테이너(flex container) 내에서 남는 공간을 아이템들이 어떻게 나눌지를 제어하는 데 사용됩니다.

코드

.flex-container {
  display: flex;
}

.flex-item {
  flex-grow: 2; /* 아이템은 다른 아이템보다 2배로 많은 공간을 차지하려고 시도함 */
}

이렇게 설정된 아이템은 부모 컨테이너의 공간이 남을 때 더 많은 공간을 차지하려고 시도하며, 공간이 더 많을 때 다른 아이템보다 더 크게 확장됩니다.

예시

.the-movie .poster{
    flex-shrink: 0;
    --width: 500px;
    width: var(--width);
    height: calc(car(--width) * 3 / 2);
    border-radius: 10px;
    background-size: cover;
    background-color: var(--color-area);
}
.the-movie .spec{
    flex-grow: 1;
}

왼쪽이 .the-movie .poster 오른쪽이 .the-movie .spec 입니다

  • .the-movie .poster 부분은 flex-shrink: 0; 로써 줄어들지 않고
  • .the-movie .spec 부분은 남은 영역을 최대한 차지 합니다
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.