如何给 HTML 中的部分字符着色?
How to color parts of character in HTML?
在我的网站上,我使用的是五颗星的用户评分。所以每个用户可以选择一到五颗星。
我想用部分彩色星星显示平均用户评分。例如:平均评分为3.5星,三颗星应该完全着色,第四颗星应该有50%水平着色。
我正在使用 Font Awesome 显示星星。所以每个星星都是一个角色,而不是图像。
有没有不使用图像的解决方案?也许 CSS?
到目前为止,我只知道用 style="color: yellow;"
给完整字符着色的解决方案,但我想给第四个字符的 50% 着色...
您可以通过设置 2 个 5 颗星的实例来实现此目的,其中一组是黄色星星,另一组是灰色。将黄色的放在顶部然后将宽度设置为百分比并隐藏溢出
.rating {
display: inline-block;
position: relative;
line-height: 1em;
}
.rating__overlay {
color: yellow;
position: absolute;
top: 0;
left: 0;
width: 70%;
white-space: nowrap;
overflow: hidden;
}
.rating__base {
color: #ccc;
white-space: nowrap;
}
<link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/>
<div class="rating">
<div class="rating__overlay">
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
</div>
<div class="rating__base">
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
</div>
</div>
在我的网站上,我使用的是五颗星的用户评分。所以每个用户可以选择一到五颗星。
我想用部分彩色星星显示平均用户评分。例如:平均评分为3.5星,三颗星应该完全着色,第四颗星应该有50%水平着色。
我正在使用 Font Awesome 显示星星。所以每个星星都是一个角色,而不是图像。
有没有不使用图像的解决方案?也许 CSS?
到目前为止,我只知道用 style="color: yellow;"
给完整字符着色的解决方案,但我想给第四个字符的 50% 着色...
您可以通过设置 2 个 5 颗星的实例来实现此目的,其中一组是黄色星星,另一组是灰色。将黄色的放在顶部然后将宽度设置为百分比并隐藏溢出
.rating {
display: inline-block;
position: relative;
line-height: 1em;
}
.rating__overlay {
color: yellow;
position: absolute;
top: 0;
left: 0;
width: 70%;
white-space: nowrap;
overflow: hidden;
}
.rating__base {
color: #ccc;
white-space: nowrap;
}
<link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"/>
<div class="rating">
<div class="rating__overlay">
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
</div>
<div class="rating__base">
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
<i class="fas fa-star"></i>
</div>
</div>