본문 바로가기
Front-end/CSS

flex-shrink 속성

by mooyou 2021. 11. 10.
728x90
300x250

 

flex-shrink 속성은

flex-grow속성이 남는 공간을 분배해서 나눠가지는 것이라면 flex-shrink 속성은 반대로 공간을 넘어갈 경우에 각 아이템들을 줄이는 방법을 설정하는 것입니다.

기본값은 1이고 속성값이 1 이상이라면 부모 컨테이너의 크기가 flex 아이템보다 작아질 경우 부모 컨테이너에 맞춰서 크기가 줄어들게 됩니다.

 

html

<div class="container">
    <div class="item">
        <h3>1번째 item</h3>
        <img src="../img/aside.svg" alt="aside">
        <p>Lorem ipsum dolor sit amet</p>
    </div>
    <div class="item">
        <h3>2번째 item</h3>
        <img src="../img/calltrans.svg" alt="calltrans">
        <p>vero rerum dicta alias voluptates vitae quod veniam obcaecati </p>
    </div>
    <div class="item">
        <h3>3번째 item</h3>
        <img src="../img/hold.svg" alt="hold">
    </div>
</div>

 

css

.container {
    width: 500px;
}

.item {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    flex-basis: 200px;
    flex-shrink: 1;
}

 

위와 같이 item을 감싸고 있는 부모 container의 값이 500px인데 각 item의 크기는 200px * 3이기 때문에

item의 크기가 부모컨테이너 크기보다 큽니다.

이때 flex-shrink:1;로 설정되어있기 때문에 부모 컨테이너 크기에 맞춰서 줄어들게 됩니다.

 

 

원래 아이템의 크기보다 줄어든걸 확인할 수 있습니다.

 

 

만약 item의 shrink 값을 0으로 수정한다면 부모컨테이너의 크기와 상관없이 flex item의 크기를 유지합니다.

.item {
    flex-shrink: 0;
}

728x90
반응형

'Front-end > CSS' 카테고리의 다른 글

flex 1 1 auto / flex 0 0 100px  (0) 2021.11.16
css 말줄임 여러줄 일 때  (0) 2021.11.13
flex-basis과 width 차이  (0) 2021.11.09
flex-basis란?  (0) 2021.11.08
flex-grow 사용법  (0) 2021.11.05

댓글