我正在使用無線電的css星級評分系統。 但是我似乎無法弄清楚我在這裏做錯了什麼......它似乎突出顯示了當我點擊時......但它應該突出顯示當我懸停時。具有單選按鈕的CSS星級
<fieldset>
<input type="radio" id="star-5" name="rating-01" value="5"><label for="star-5"></label>
<input type="radio" id="star-4" name="rating-01" value="4"><label for="star-4"></label>
<input type="radio" id="star-3" name="rating-01" value="3"><label for="star-3"></label>
<input type="radio" id="star-2" name="rating-01" value="2"><label for="star-2"></label>
<input type="radio" id="star-1" name="rating-01" value="1"><label for="star-1"></label>
</fieldset>
input[type=radio] { display: none; visibility: collapse; }
input[type=radio] + label {
position: relative; float: right; clear: none; display: block;
width: 18.4%; height: 120px; margin: 0 1% 0 1%; padding: 0;
outline: 0; cursor: pointer;
background-color: green;
}
input[type=radio]#star-1 + label { margin: 0 1% 0 0; } input[type=radio]#star-5 + label { margin: 0 0 0 1%; }
input[type=radio]:hover + label,
input[type=radio]:hover + label ~ input[type=radio] + label {
background-color: red;
}
UPDATE
原來這就是我設法到目前爲止做的:JSFiddle;
CSS:
input[type=radio] { display: none; visibility: collapse; }
input[type=radio] + label {
position: relative; float: right; clear: none; display: block;
width: 18.4%; height: 120px; margin: 0 1% 0 1%; padding: 0;
outline: 0; cursor: pointer; background-color: green;
}
input[type=radio]#star-1 + label { margin: 0 1% 0 0; } input[type=radio]#star-5 + label { margin: 0 0 0 1%; }
fieldset > input[type=radio]:checked ~ label {
background-color: blue;
}
fieldset:hover > input[type=radio] + label:hover,
fieldset:hover > input[type=radio] + label:hover ~ label {
background-color: gold;
}
但是仍然有一個問題...當您選擇框和他們去藍色。而你將鼠標懸停在藍色的支架上,而懸停的部分則是黃色的。
將鼠標懸停後,如何重置藍色?
https://jsfiddle.net/5ntpom7a/對我來說,這是行得通的... –
@SimonHänisch一旦你點擊並突出顯示,然後刪除光標並嘗試再次單擊它將無法正常工作。它也應該突出':懸停'不點擊..甚至不知道它爲什麼點擊工作,因爲我沒有編程::檢查' – Borsn
對我來說沒有任何反應,點擊... –