让悬停从最左边的星星向最右边的星星移动的诀窍是什么?像flex-direction: row-reverse;
和direction: rtl;
这样的东西不算,因为它们也颠倒了恒星的顺序。
.rating-container input[type="radio"] {
display: none;
}
.rating-container label {
display: inline-block;
cursor: pointer;
}
.rating-container svg {
fill: #ccc;
}
.rating-container input[type="radio"]:checked ~ label svg,
.rating-container label:hover ~ label svg,
.rating-container label:hover svg {
fill: #000;
}
<div id="rating-rate" class="rating-container" name="revrating">
<input type="radio" id="rating1" name="revrating" value="1">
<label for="rating1"><svg aria-hidden="true" focusable="false" viewBox="1.697 1.992 11.58 11" role="img" width="24px" height="24px"><path d="M13.277 6.182 9.697 8.782 11.057 12.992 7.487 10.392 3.907 12.992 5.277 8.782 1.697 6.182 6.117 6.182 7.487 1.992 8.857 6.182 13.277 6.182Z"></path></svg></label>
<input type="radio" id="rating2" name="revrating" value="2">
<label for="rating2"><svg aria-hidden="true" focusable="false" viewBox="1.697 1.992 11.58 11" role="img" width="24px" height="24px"><path d="M13.277 6.182 9.697 8.782 11.057 12.992 7.487 10.392 3.907 12.992 5.277 8.782 1.697 6.182 6.117 6.182 7.487 1.992 8.857 6.182 13.277 6.182Z"></path></svg></label>
<input type="radio" id="rating3" name="revrating" value="3">
<label for="rating3"><svg aria-hidden="true" focusable="false" viewBox="1.697 1.992 11.58 11" role="img" width="24px" height="24px"><path d="M13.277 6.182 9.697 8.782 11.057 12.992 7.487 10.392 3.907 12.992 5.277 8.782 1.697 6.182 6.117 6.182 7.487 1.992 8.857 6.182 13.277 6.182Z"></path></svg></label>
<input type="radio" id="rating4" name="revrating" value="4">
<label for="rating4"><svg aria-hidden="true" focusable="false" viewBox="1.697 1.992 11.58 11" role="img" width="24px" height="24px"><path d="M13.277 6.182 9.697 8.782 11.057 12.992 7.487 10.392 3.907 12.992 5.277 8.782 1.697 6.182 6.117 6.182 7.487 1.992 8.857 6.182 13.277 6.182Z"></path></svg></label>
<input type="radio" id="rating5" name="revrating" value="5">
<label for="rating5"><svg aria-hidden="true" focusable="false" viewBox="1.697 1.992 11.58 11" role="img" width="24px" height="24px"><path d="M13.277 6.182 9.697 8.782 11.057 12.992 7.487 10.392 3.907 12.992 5.277 8.782 1.697 6.182 6.117 6.182 7.487 1.992 8.857 6.182 13.277 6.182Z"></path></svg></label>
<span style="display: none;"></span><span style="display: none;"></span><span style="display: none;"></span><span style="display: none;"></span><span style="display: none;"></span></div>
5条答案
按热度按时间j0pj023g1#
k4aesqcs2#
你试过:has操作符了吗?有点新,但允许这种选择。它允许您选择具有特定特征的每个元素,在您的情况下,所有具有较晚兄弟的星星:hover。这段代码应该能成功
vtwuwzda3#
您可以使用
direction: rtl;
,但您需要反转radio值,使第一个值为5
,直到1
成为最后一个值vhipe2zx4#
以下是我们如何解决错误的悬停和选择方向的问题。
(css解决方案由Giuliano Gostinfini和Mitali Patel提供,谢谢)
2admgd595#
将
<input>
s、<label>
s和<svg>
s的容器设置为flex容器,然后通过添加以下CSS反转其方向:接下来,颠倒每个
<input>
上的值的顺序:如果HTML无法更改,只需在页面加载后以编程方式分配值即可:
在下面的示例中,容器是
<form id="rating">
,为了简单起见,名称略有更改,但HTML布局没有更改。添加了一些JavaScript来演示当用户选择一颗星星时会分配正确的值。此示例将把选中的值提交给实时测试服务器。
路线
1.单击“★”。
1.注意控制台中显示的值。
1.单击“发送”按钮。
1.注意下面iframe中显示的服务器响应。