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

CSS로 flex-basis 속성 애니메이션 구현하기

CSS로 flex-basis 속성 애니메이션 구현하기

CSS에서 flex-basis 속성은 플렉스 컨테이너 안에서 각 아이템이 차지하는 기본 크기를 지정하는 속성입니다. 이 속성에 애니메이션을 적용하면 화면 로딩 시 또는 반복적으로 요소의 너비가 부드럽게 늘어나고 줄어드는 시각적 효과를 만들 수 있습니다.

flex-basis에 애니메이션을 적용하려면 CSS의 @keyframes 규칙을 사용하면 됩니다. 아래 예제는 4초 주기로 무한 반복되는 애니메이션을 통해 Q4 항목의 크기가 변화하는 모습을 보여줍니다.

예제 코드

<!DOCTYPE html>
<html>
<head>
<style>
    .box {
        display: flex;
        background-color: green;
    }
    .box > div {
        background-color: white;
        text-align: center;
        line-height: 40px;
        font-size: 25px;
        width: 100px;
        margin: 5px;
    }
    div {
        animation: myanim 4s infinite;
    }
    @-webkit-keyframes myanim {
        50% {
            flex-basis: 100px;
        }
    }
</style>
</head>
<body>
    <h1>Quiz</h1>
    <div class = "box">
        <div>Q1</div>
        <div>Q2</div>
        <div>Q3</div>
        <div style = "flex-basis: 350px">Q4</div>
        <div>Q5</div>
        <div>Q6</div>
        <div>Q7</div>
        <div>Q8</div>
        <div>Q9</div>
    </div>
</body>
</html>

코드 설명

.box 클래스에는 display: flex가 적용되어 있어, 내부의 자식 요소들이 플렉스 레이아웃으로 배치됩니다.

@keyframes myanim 규칙은 애니메이션의 중간 지점(50%)에서 flex-basis: 100px를 적용하도록 정의되어 있습니다. 이 규칙이 모든 div 요소에 animation: myanim 4s infinite 형태로 적용되므로, 각 항목은 4초를 주기로 크기가 반복적으로 변하게 됩니다.

특히 Q4 항목에는 인라인 스타일로 flex-basis: 350px가 지정되어 있어, 다른 항목보다 훨씬 넓은 공간을 차지하다가 애니메이션이 진행됨에 따라 그 크기가 역동적으로 변화하는 것을 확인할 수 있습니다.