Computer >> 컴퓨터 >  >> 프로그래밍 >> CSS

CSS flex-shrink 속성으로 애니메이션 효과 구현하기

flex-shrink는 플렉스 컨테이너의 공간이 부족할 때 각 플렉스 아이템이 얼마나 줄어들 수 있는지를 결정하는 CSS 속성입니다. 이 속성에 애니메이션을 적용하면 요소가 축소되는 과정을 부드럽고 동적으로 표현할 수 있습니다.

다음 예제 코드를 실행하면 CSS만으로 flex-shrink 속성에 애니메이션을 구현하는 방법을 확인할 수 있습니다.

예제

<!DOCTYPE html>
<html>
   <head>
      <style>
         .mycontainer {
            display: flex;
            background-color: orange;
         }
         .mycontainer > div {
            background-color: white;
            text-align: center;
            line-height: 150px;
            font-size: 30px;
            width: 100px;
            margin: 5px;
         }
         div {
            animation: myanim 4s infinite;
         }
         @-webkit-keyframes myanim {
            70% {
               flex-shrink: 1;
            }
         }
      </style>
   </head>
   <body>
      <h1>Quiz</h1>
      <div class = "mycontainer">
         <div>Q1</div>
         <div>Q2</div>
         <div>Q3</div>
         <div style = "flex-shrink: 0">Q4</div>
         <div>Q5</div>
         <div>Q6</div>
         <div>Q7</div>
         <div>Q8</div>
         <div>Q9</div>
      </div>
   </body>
</html>

코드 설명

  • @keyframes myanim: 4초 동안 무한 반복되는 애니메이션을 정의하며, 진행률 70% 지점에서 flex-shrink: 1 값이 적용됩니다.
  • .mycontainer: display: flex로 설정된 플렉스 컨테이너로, 주황색 배경 위에 흰색 아이템들이 가로로 배치됩니다.
  • Q4 항목: 인라인 스타일로 flex-shrink: 0이 지정되어 있어 애니메이션이 실행되는 동안에도 크기가 줄어들지 않습니다.

이처럼 @keyframes와 함께 flex-shrink 값을 조절하면, 브라우저 창 크기나 콘텐츠 양에 따라 플렉스 아이템이 자연스럽게 축소되는 인터랙티브한 레이아웃을 손쉽게 만들 수 있습니다.