[PURE CSS] svg 없는 테두리 애니메이션
2739 단어 codepen
다음은 파일에 넣을 수 있는 CSS입니다.
:root {
--box-width: 200px;
--box-lenght: 200px;
--box-animation-width: calc(var(--box-width) + 20px);
--box-animation-lenght: calc(var(--box-lenght) + 20px);
}
.animbox::before,
.animbox::after,
.animbox {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
}
.animbox {
width: var(--box-width);
height: var(--box-lenght);
margin: auto;
color: #69ca62;
box-shadow: inset 0 0 0 1px rgba(105, 202, 98, 0.5);
}
.animbox::before,
.animbox::after {
content: "";
z-index: -1;
margin: -10px;
box-shadow: inset 0 0 0 2px;
animation: clipMe 8s linear infinite;
}
.animbox::before {
animation-delay: -4s;
}
.animbox:hover::after,
.animbox:hover::before {
background-color: rgba(255, 0, 0, 0.3);
}
@keyframes clipMe {
0% {
clip: rect(0px, var(--box-animation-width), 2px, 0px); /* ligne du haut */
}
25% {
clip: rect(0px, 2px, var(--box-animation-lenght), 0px); /* ligne de gauche */
}
50% {
clip: rect(calc(var(--box-animation-lenght) - 2px), var(--box-animation-width), var(--box-animation-lenght), 0px); /* ligne du bas */
}
75% {
clip: rect(0px, var(--box-animation-width), var(--box-animation-lenght), calc(var(--box-animation-width) - 2px) ); /* ligne de droite */
}
100% {
clip: rect(0px, var(--box-animation-width), 2px, 0px); /* ligne du haut */
}
}
html,
body {
height: 100%;
}
body {
background-color: #0f222b;
}
*,
*::before,
*::after {
box-sizing: border-box;
}
.animboxpospadding {
padding-top: 250px;
position: relative;
margin: 50px;
}
상대 위치와 함께 사용하려면 다음을 수행하십시오.
<div class="animboxpospadding">
<div>
<div class="animbox"></div>
</div>
</div>
이것이 어떻게 여러분에게 유용할 수 있습니까?
단일 요소 애니메이션 아이콘~
에서 영감을 받다:
http://tympanus.net/Tutorials/BorderAnimationSVG/
&
http://mopcon.org/2014/news.php
브라우저 지원:
animation : IE10+
clip : 모든 브라우저
Reference
이 문제에 관하여([PURE CSS] svg 없는 테두리 애니메이션), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/maximeduvey/pure-css-border-animation-without-svg-2l5d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)