CSS SVG 별점 ⭐️
이 예에서는 세 가지 유형의 별을 사용합니다. (비어 있음. 절반, 꽉 찼음).
그런 다음 특정 등급을 표시하기 위해 사용하는 방법에 대한 몇 가지 예를 보여드리겠습니다.
이 Codepen에서 볼 수 있듯이 최종 결과입니다.
SVG 세트 만들기
언급한 바와 같이 우리는 세 가지 버전을 사용할 것이며 이를 달성하기 위해 SVG Sprites을 사용할 것입니다.
<svg id="stars" style="display: none;" version="1.1">
<symbol id="stars-empty-star" viewBox="0 0 102 18" fill="#F1E8CA">
<path d="M9.5 14.25l-5.584 2.936 1.066-6.218L.465 6.564l6.243-.907L9.5 0l2.792 5.657 6.243.907-4.517 4.404 1.066 6.218" />
</symbol>
<symbol id="stars-full-star" viewBox="0 0 102 18" fill="#D3A81E">
<path d="M9.5 14.25l-5.584 2.936 1.066-6.218L.465 6.564l6.243-.907L9.5 0l2.792 5.657 6.243.907-4.517 4.404 1.066 6.218" />
</symbol>
<symbol id="stars-half-star" viewBox="0 0 102 18" fill="#D3A81E">
<use xlink:href="#stars-empty-star" />
<path d="M9.5 14.25l-5.584 2.936 1.066-6.218L.465 6.564l6.243-.907L9.5 0l2.792" />
</symbol>
</svg>
보시다시피 다음이 있습니다.
그것이 우리의 소스가 될 것이고 우리는 이것을 다음과 같은 방법으로 사용할 수 있습니다.
SVG 별 사용
물론 주요 질문은 이제 어떻게 스타를 선보일 수 있습니까?
빈 별을 표시하고 싶다고 가정해 보겠습니다.
<svg aria-hidden="true" focusable="false" class="rating">
<use xlink:href="#stars-empty-star" />
</svg>
또는 만점:
<svg aria-hidden="true" focusable="false" class="rating">
<use xlink:href="#stars-full-star" />
</svg>
또는 반성:
<svg aria-hidden="true" focusable="false" class="rating">
<use xlink:href="#stars-half-star" />
</svg>
작동합니다. 굉장합니다!
그러나 이제 우리는 별점 5개 등급 구성 요소를 만들고 싶고 SVG는 서로의 위에서 크롤링하는 경향이 있습니다.
따라서 다음 코드가 있는 경우:
<!-- 2.5 Rating -->
<svg aria-hidden="true" focusable="false" class="rating">
<use xlink:href="#stars-full-star" />
<use xlink:href="#stars-full-star" />
<use xlink:href="#stars-half-star" />
<use xlink:href="#stars-empty-star" />
<use xlink:href="#stars-empty-star" />
</svg>
모두 다음과 같이 앉는 경우:
흠, 이상해? 별이 하나만 표시되나요?
옳은!
이를 해결하기 위해
CSS
를 사용하겠습니다.use {
&:nth-child(2) {
transform: translate(20px);
}
&:nth-child(3) {
transform: translate(40px);
}
&:nth-child(4) {
transform: translate(60px);
}
&:nth-child(5) {
transform: translate(80px);
}
}
x 자식마다 20px 오프셋 위치를 제공합니다.
이제 우리는 이것을 얻습니다:
Codepen에서 나머지 조합을 찾을 수 있습니다!
읽어주셔서 감사합니다. 연결해 봅시다!
제 블로그를 읽어주셔서 감사합니다. 내 이메일 뉴스레터를 구독하고 Facebook에 연결하거나
Reference
이 문제에 관하여(CSS SVG 별점 ⭐️), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/dailydevtips1/css-svg-star-rating-50fp텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)