当前位置:首页 > CSS

css星级评分制作

2026-03-12 09:07:49CSS

CSS星级评分制作方法

通过纯CSS实现星级评分系统,可以采用以下两种常见方案:

css星级评分制作

使用Unicode字符或图标字体

定义包含五颗星的容器,通过CSS控制选中状态:

css星级评分制作

<div class="star-rating">
  <span>★</span>
  <span>★</span>
  <span>★</span>
  <span>★</span>
  <span>★</span>
</div>
.star-rating {
  unicode-bidi: bidi-override;
  direction: rtl;
  font-size: 2rem;
}
.star-rating span {
  display: inline-block;
  color: #ddd;
  cursor: pointer;
}
.star-rating span:hover,
.star-rating span:hover ~ span {
  color: gold;
}
.star-rating input[type="radio"] {
  display: none;
}

使用radio输入控件

结合CSS伪类实现交互效果:

<div class="star-rating">
  <input type="radio" id="star5" name="rating" value="5">
  <label for="star5"></label>
  <input type="radio" id="star4" name="rating" value="4">
  <label for="star4"></label>
  <input type="radio" id="star3" name="rating" value="3">
  <label for="star3"></label>
  <input type="radio" id="star2" name="rating" value="2">
  <label for="star2"></label>
  <input type="radio" id="star1" name="rating" value="1">
  <label for="star1"></label>
</div>
.star-rating {
  display: inline-flex;
  flex-direction: row-reverse;
}
.star-rating input {
  display: none;
}
.star-rating label {
  font-size: 2rem;
  color: #ddd;
  cursor: pointer;
}
.star-rating input:checked ~ label,
.star-rating label:hover,
.star-rating label:hover ~ label {
  color: gold;
}

关键实现要点

  • 使用direction: rtlflex-direction: row-reverse实现从右向左的悬停效果
  • 通过~选择器控制兄弟元素的样式变化
  • 图标可以使用★字符、Font Awesome等图标库或SVG
  • 结合:checked伪类实现选中状态持久化

动画增强

为悬停效果添加平滑过渡:

.star-rating label {
  transition: color 0.2s;
}

以上方案均无需JavaScript即可实现完整交互,可通过表单提交评分值。如需半星评分,需要额外设计图标和更复杂的CSS逻辑。

标签: 星级评分
分享给朋友:

相关文章

vue 实现星星评分

vue 实现星星评分

vue 实现星星评分的方法 使用组件化方式实现 创建一个独立的评分组件,通过v-for循环生成星星图标,利用v-model或props实现数据双向绑定。 <template> <…

vue 实现星级评价

vue 实现星级评价

实现星级评价的步骤 使用组件实现星级评价 在Vue中,可以通过创建一个星级评价组件来实现。该组件允许用户点击星星进行评分,并显示当前评分。 <template> <div cl…

vue实现店铺星级评价

vue实现店铺星级评价

Vue 实现店铺星级评价 使用组件库快速实现(如 Element UI) 安装 Element UI 后,可直接使用 el-rate 组件: <template> <el-ra…

js 实现评分

js 实现评分

实现评分功能(五星评分) 在JavaScript中实现五星评分功能,可以通过HTML、CSS和JavaScript结合完成。以下是一个常见的实现方式: HTML部分 <div class="…

vue评分实现

vue评分实现

实现 Vue 评分功能 在 Vue 中实现评分功能可以通过自定义组件或使用第三方库完成。以下是两种常见的实现方式: 使用第三方库(如 vue-star-rating) 安装库: npm i…

vue实现评分

vue实现评分

实现评分功能的步骤 在Vue中实现评分功能可以通过多种方式完成,以下是一种常见的实现方法: 创建评分组件 使用v-for循环生成评分星星,并通过v-model绑定评分值: <templat…