如何移除SVG星级评分中的白色矩形背景?
解决星级评分中星星白色矩形背景的问题
你看到的星星内白色矩形,是因为每个星星<path>标签里额外包含了一段绘制白色矩形的路径代码(M0 0 h24 v24 h-24 v-24),只需删除这段代码即可移除白色背景。
修改后的完整代码
CSS 部分
.rating { width: 120px; height: 24px; position: relative; background-color: gray; } .rating progress.rating-bg { -webkit-appearance: none; -moz-appearance: none; appearance: none; border: none; display: inline-block; height: 24px; width: 100%; color: orange; } .rating progress.rating-bg::-webkit-progress-value { background-color: orange; } .rating progress.rating-bg::-moz-progress-bar { background-color: orange; } .rating svg { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
HTML 部分
<svg style="display:none;"> <defs> <symbol id="fivestars"> <path d="M12 .587l3.668 7.568 8.332 1.151-6.064 5.828 1.48 8.279-7.416-3.967-7.417 3.967 1.481-8.279-6.064-5.828 8.332-1.151z" fill="white" fill-rule="evenodd"/> <path d="M12 .587l3.668 7.568 8.332 1.151-6.064 5.828 1.48 8.279-7.416-3.967-7.417 3.967 1.481-8.279-6.064-5.828 8.332-1.151z" fill="white" fill-rule="evenodd" transform="translate(24)"/> <path d="M12 .587l3.668 7.568 8.332 1.151-6.064 5.828 1.48 8.279-7.416-3.967-7.417 3.967 1.481-8.279-6.064-5.828 8.332-1.151z" fill="white" fill-rule="evenodd" transform="translate(48)"/> <path d="M12 .587l3.668 7.568 8.332 1.151-6.064 5.828 1.48 8.279-7.416-3.967-7.417 3.967 1.481-8.279-6.064-5.828 8.332-1.151z" fill="white" fill-rule="evenodd" transform="translate(72)"/> <path d="M12 .587l3.668 7.568 8.332 1.151-6.064 5.828 1.48 8.279-7.416-3.967-7.417 3.967 1.481-8.279-6.064-5.828 8.332-1.151z" fill="white" fill-rule="evenodd" transform="translate(96)"/> </symbol> </defs> </svg> <div class="rating"> <progress class="rating-bg" value="4.9" max="5"></progress> <svg><use xlink:href="#fivestars"/></svg> </div>
修改说明
- 每个星星对应的
<path>标签中,删除了末尾绘制白色矩形的路径代码M0 0 h24 v24 h-24 v-24,仅保留星星本身的路径。 - 修正了CSS中
-moz-appearence的拼写错误(改为-moz-appearance),提升浏览器兼容性。
内容的提问来源于stack exchange,提问作者peter88uk
相关产品推荐
相关产品推荐

