HTML CSS
@keyframes, a:visited and a:active 애니메이션, 봤던글 표시하기
svdjcuwg4638
2023. 5. 26. 11:48
@keyframes
동적인 효과를 보여주고싶을때 키프레임을 생성하여 태그에 추가해보자
css
@keyframes shake{
0%{
/* 애니메이션 시작점. 초기 상태 그대로 유지합니다. */
}
25%{
/* 애니메이션 1/4 지점에서 요소를 오른쪽으로 3도 회전시킵니다. */
transform:rotate(3deg)
}
50%{
transform:rotate(0deg)
}
75%{
transform:rotate(-3deg)
}
100%{
transform:rotate(0deg)
}
}
.reservation{
/* animation-name 속성은 'shake' 키프레임 애니메이션을 이 클래스에 적용하는 데 사용됩니다. */
animation-name: shake;
/* animation-duration 속성은 애니메이션 한 주기를 완료하는 데 걸리는 총 시간을 정의합니다. 이 경우에는 1초입니다. */
animation-duration: 1s;
/* animation-timing-function 속성이 'linear'로 설정되어 있어 애니메이션은 시작부터 끝까지 동일한 속도를 가집니다. */
animation-timing-function: linear;
/* animation-iteration-count 속성은 애니메이션을 반복하는 횟수를 정의합니다. 여기서는 3번 반복됩니다. */
animation-iteration-count: 3;
/* animation-direction 속성은 애니메이션이 교대로 진행되는지 (즉, 애니메이션이 끝날 때마다 방향이 바뀌는지)를 지정합니다. */
animation-direction: alternate;
/* animation-fill-mode 속성은 애니메이션이 시작하기 전이나 끝난 후에 어떻게 작동해야 하는지를 정의합니다. 'none'으로 설정하면 애니메이션이 작동하지 않습니다. */
animation-fill-mode: none;
/* animation-play-state 속성은 애니메이션이 현재 실행 중인지 또는 일시 중지된 상태인지를 제어합니다. 'running'은 애니메이션이 현재 실행 중임을 의미합니다. */
animation-play-state: running;
}
html
<div class=".container-content">
<div class="content_inner">
<div class="wrap-text">
<div class="text_inner">
<img src="./img/sofa.png" alt="">
<div class="info">
<div class="title reservation">예약 안내</div>
// reservation 적용되어서 애니메이션 효과가 적용된다.
<div class="detail">스튜디오 대여는 사전에 인터넷 예약을 하셔야 합니다. 예약은 1일 이전까지 가능합니다.</div>
</div>
</div>
<div class="text_inner">
<img src="./img/candle.png" alt="">
<div class="info">
<div class="title">포토 갤러리</div>
<div class="detail">취업 사진, 가족 사진, 프로필 사진, 우정 사진 등 개인 또는 단체가 이용할 수 있습니다.</div>
</div>
</div>
</div>
<div class="wrap-img">
<div class="content">
<img src="./img/studio01.jpg" alt="">
<div class="title">촬영 스튜디오</div>
<div class="detail">카메라, 조명 등 촬영 장비 완비</div>
</div>
<div class="content">
<img src="./img/studio02.jpg" alt="">
<div class="title">촬영 스튜디오</div>
<div class="detail">카메라, 조명 등 촬영 장비 완비</div>
</div>
<div class="content">
<img src="./img/studio03.jpg" alt="">
<div class="title">촬영 스튜디오</div>
<div class="detail">카메라, 조명 등 촬영 장비 완비</div>
</div>
<div class="content">
<img src="./img/studio04.jpg" alt="">
<div class="title">촬영 스튜디오</div>
<div class="detail">카메라, 조명 등 촬영 장비 완비</div>
</div>
</div>
</div>
</div>
상단에 예약안내 태그에 css에서 만든
reservation을 추가하여 우리가 설정한 애니메이션 효과를 부여할 수 있다.
결과
a:visited, a:active
보통 게시물이나 웹툰사이트를보면은 내가 본것은 배경이 회색으로 표기되는것을 볼 수 있다.
우리도 한번 적용 시켜보자.
HTML/ CSS
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
a:visited,a:active{
text-decoration: none;
color:rgb(39, 37, 37);
}
</style>
</head>
<body>
<a href="https://www.google.com">방문1</a>
<a href="https://www.wikipedia.org">방문2</a>
<a href="https://www.youtube.com">방문3</a>
<a href="https://www.amazon.com">방문4</a>
<a href="https://www.openai.com">방문5</a>
</body>
</html>
방문1과 방문3는 현재 방문한 이력이 있는 상태
2번을 방문하게 되면
이걸 color이아닌 background-color에 설정을 준다면 웹툰페이지와 같은 효과를 볼 수 있다.