Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

쩡이 개발공부 블로그

테두리 애니메이션 효과 주기 본문

공부

테두리 애니메이션 효과 주기

쪙잉ㅇ 2023. 11. 26. 21:53

↓border의 시계방향으로 빛나는 애니메이션이 있으면 좋겠다라는 요청이 있었다.

처음에는 단순하게 'border에 애니메이션을 주면 되지 않나?'라고 생각했는데 큰 착각이었다..! 

 

결론만 말하자면, 그라데이션 또는 애니메이션 효과를 준 큰 박스를 뒤에 깔고 넘치는 부분을 가리는 것이다. 

(항상 회사에서 참고했던 레퍼런스는 노션에 정리해두는데 정신이 없었나 안적었다 ㅜ)

 

보통 더 큰 box를 만들거나 :after, :before 요소에 적용시키는 것 같았는데, 나는 :after 속성에 적용시키는 방법을 선택했다. 

 

 

[ 가상 요소 ]

  • 내용의 일부만 선택해 스타일을 적용할 때 사용한다.
  • 가상 클래스와 구분하기 위해 클래스 이름 앞에 콜론 두개(::)를 붙여 표시한다. 
    • 콜론 하나(:)만 붙여도 브라우저에서는 가상요소로 인식하지만 웹 브라우저에서는 인식이 안 될 수도 있다고 한다! 

 ::before , ::after

  • 내용의 앞 또는 뒤에 콘텐츠를 추가하고, 이 콘텐츠는 content=""라는 속성으로 정의한다. 
  • 특정 요소의 앞 또는 뒤에 지정한 내용 (text or img)을 추가할 수 있다. 
  • 이 content 는 html 문서에 포함되지 않는 요소를 css에서 생성해주기 때문에 가짜 속성이고,
  • content = ""가 있어야지 가상요소가 만들어지므로 필수이다! 

 

!! 그래서 나는 

  1.  큰 div를 만들어서 overflow: hidden; position: relative; 속성을 주었다.
  2. 이 div 안에 다른 div를 만들어서 너비와 높이 조정을 하고 position: absolute; 속성으로 위치를 조정했다.
  3. 추가로 ::after 속성에 그라데이션 배경색으로 주고 애니메이션 효과를 주었다. 

결과 ↓

See the Pen 테두리 효과 by jjeonge97 (@jjeonge97) on CodePen.

 

CSS가 쉽다고 생각했는데 진짜 쉽지 않다. 내가 간단한 것들만 해왔기 때문에 쉽다고 생각했나보다ㅎ^^;;

능숙하게 잘 하는 그날까지 ..!

추가로 참고했던 코드들 ↓

See the Pen Gradient Border by alphardex (@alphardex) on CodePen.

See the Pen Animated gradient border around resizable content by Johnny Fekete (@johnnyfekete) on CodePen.

 

'공부' 카테고리의 다른 글

useRef로 스크롤 이동시키기  (5) 2023.10.22
클린 아키텍처  (8) 2023.10.15
git push 되돌리기  (5) 2023.10.09
Swiper 슬라이드 사용해보기  (3) 2023.09.17
reduce 사용하기  (5) 2023.09.10
Comments