본문 바로가기

CSS

[CSS] Animation

실습을 진행하다가

강사님께서 대뜸 처음 보는 HTML코드를 쓰셨는데

효과가 나타나서 신기했다.

 

<marquee behavior = "alternate">

숫자만 3자리, 중복숫자 X

</marquee>

 

좌우로 움직이는 효과인데 

GPT에게 CSS로 해당 코드를 짜려면 어떻게 하는지 물어봤다.

 

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>Marquee Alternate Effect</title>

<style>

.marquee-alternate {

width: 300px; /* 컨테이너 너비 */

height: 50px; /* 컨테이너 높이 */

margin: 50px auto;

overflow: hidden;

position: relative;

background-color: #f0f0f0;

border: 2px solid #ddd;

}

 

먼저 Marque 문구가 들어갈 컨테이너를 만든다.

 

.marquee-content {

position: absolute;

width: fit-content;

animation: alternate-move 3s infinite alternate;

font-size: 20px;

color: #333;

}

 

animation이라는 속성을 사용하는데 

alternate-move라는 이름을 가진 키프레임을 구현해서

애니메이션 효과를 적용한다.

3s는 3초를 의미하고

infinite는 무한으로 실행,

alternate는 한 방향으로 쭉 갔다가,

다시 돌아오는 효과를 말한다.

 

@keyframes alternate-move {

0% {

left: 0;

}

100% {

left: calc(100% - 100px); /* 컨테이너 너비 - 텍스트 너비 */

}

}

 

다음으로 키프레임 코드를 살펴보면

0%와 100%가 있는데

0%는 시작지점,

100%는 끝지점을 의미한다.

이때 끝지점은 

 

 calc(100% - 100px); 

 

요소의 너비에서 텍스트 너비를

calc함수로 빼서

해당 애니메이션이

컨테이너 박스를 벗어나지 않게 한다.

 

추후에 알게되는 애니메이션을

정리해서 게시해보려고 한다.