1
我使用这里找到适合多个CSS星级无线电代码:https://stackoverflow.com/a/27067571/2520920页上的收音机/星移选择
.rating {
float: left;
}
.rating:not(:checked) > input {
position: absolute;
top: -9999px;
clip: rect(0, 0, 0, 0);
}
.rating:not(:checked) > label {
float: right;
width: 1em;
padding: 0 .1em;
overflow: hidden;
white-space: nowrap;
cursor: pointer;
font-size: 200%;
line-height: 1.2;
color: #ddd;
text-shadow: 1px 1px #bbb, 2px 2px #666, .1em .1em .2em rgba(0, 0, 0, .5);
}
.rating:not(:checked) > label:before {
content: ★
}
.rating > input:checked ~ label {
color: #ff7700;
text-shadow: 1px 1px #c60, 2px 2px #940, .1em .1em .2em rgba(0, 0, 0, .5);
}
.rating:not(:checked) > label:hover,
.rating:not(:checked) > label:hover ~ label {
color: gold;
text-shadow: 1px 1px goldenrod, 2px 2px #B57340, .1em .1em .2em rgba(0, 0, 0, .5);
}
.rating> input:checked + label:hover,
.rating> input:checked + label:hover ~ label,
.rating> input:checked ~ label:hover,
.rating> input:checked ~ label:hover ~ label,
.rating> label:hover ~ input:checked ~ label {
color: #ea0;
text-shadow: 1px 1px goldenrod, 2px 2px #B57340, .1em .1em .2em rgba(0, 0, 0, .5);
}
.rating > label:active {
position: relative;
top: 2px;
left: 2px;
}
<div class="control-group">
<label class="control-label" for="meals">Meals</label>
<div class="controls rating one">
<input type="radio" id="star5" name="meals" value="5" />
<label for="star5"><span>★</span>
</label>
<input type="radio" id="star4" name="meals" value="4" />
<label for="star4"><span>★</span>
</label>
<input type="radio" id="star3" name="meals" value="3" />
<label for="star3"><span>★</span>
</label>
<input type="radio" id="star2" name="meals" value="2" />
<label for="star2"><span>★</span>
</label>
<input type="radio" id="star1" name="meals" value="1" />
<label for="star1"><span>★</span>
</label>
</div>
</div>
<!--added so that you can see the page jump--->
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<div class="control-group">
<label class="control-label" for="lodging">Lodging</label>
<div class="controls rating two">
<input type="radio" id="star5-1" name="lodging" value="5" />
<label for="star5-1"><span>★</span>
</label>
<input type="radio" id="star4-1" name="lodging" value="4" />
<label for="star4-1"><span>★</span>
</label>
<input type="radio" id="star3-1" name="lodging" value="3" />
<label for="star3-1"><span>★</span>
</label>
<input type="radio" id="star2-1" name="lodging" value="2" />
<label for="star2-1"><span>★</span>
</label>
<input type="radio" id="star1-1" name="lodging" value="1" />
<label for="star1-1"><span>★</span>
</label>
</div>
</div>
<!--added so that you can see the page jump--->
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<div class="control-group">
<label class="control-label" for="trans">Transportation</label>
<div class="controls rating three">
<input type="radio" id="star5-2" name="trans" value="5" />
<label for="star5-2"><span>★</span>
</label>
<input type="radio" id="star4-2" name="trans" value="4" />
<label for="star4-2"><span>★</span>
</label>
<input type="radio" id="star3-2" name="trans" value="3" />
<label for="star3-2"><span>★</span>
</label>
<input type="radio" id="star2-2" name="trans" value="2" />
<label for="star2-2"><span>★</span>
</label>
<input type="radio" id="star1-2" name="trans" value="1" />
<label for="star1-1"><span>★</span>
</label>
</div>
</div>
我每次点击一个星级,页面跳转到顶部。我在.rating > label:active
CSS属性上玩了很多 - 我可以让页面静止不动,但星级不起作用。
任何意见非常感谢。谢谢!
确保设置一个高度的问题元素(一个或多个)。另外单选按钮在每个浏览器中的行为都非常不同,解决这个问题的最好方法是在一个范围内添加,givetje跨越一个高度和宽度,然后完成。 –
@RensTillmann - 这似乎没有工作''span style =“height:50px; width:250px;”>'是我试图围绕每个控制组。我错过了什么吗? –
不给你的输入字段和标签的高度和边界,看看发生了什么。或者只是在所有元素上添加边界,它将使您清楚地了解导致问题的位置和原因。通过阅读你的代码很难说。 –