Ich habe this star rating snippet mit gutem Erfolg in meinem Chrome-Erweiterung Popup HTML umgesetzt:Wie kann man Sterne bewerten?
Hier ist meine Implementierung:
.rating {
float: left;
unicode-bidi: bidi-override;
direction: rtl;
font-size: 28px;
margin-top: -11px;
color: #e8d04c;
margin-left: 10px;
margin-right: 10px;
}
.rating > span {
display: inline-block;
position: relative;
width: 0.7em;
cursor: pointer;
}
.rating > span:hover:before,
.rating > span:hover ~ span:before {
content: "\2605";
position: absolute;
}
<div id="divRating" class="rating">
<span id="spanRatingExcellent" title="Excellent">☆</span>
<span id="spanRatingGood" title="Good">☆</span>
<span id="spanRatingFair" title="Fair">☆</span>
<span id="spanRatingPoor" title="Poor">☆</span>
<span id="spanRatingAwful" title="Awful">☆</span>
</div>
Es funktioniert mit Ausnahme fein, dass dieser Ansatz ein nicht liefern Möglichkeit, dass der ausgewählte Stern "klebt". Zum Beispiel, wenn der Benutzer auf 4 Sterne klickt, wenn der Mauszeiger geht, möchte ich, dass die Sterne 1-4 hervorgehoben bleiben. Stattdessen leuchten alle Sterne beim Mouseout aus. Aber wenn dann die Maus wieder benutzt und ein Stern geklickt wird, brauche ich korrektes (originelles) Verhalten. Und wiederum, wenn ein Stern angeklickt wird, sollten die ausgewählten Sterne beim Verlassen der Maus hervorgehoben bleiben und alle nicht ausgewählten Sterne (rechts) bleiben unmarkiert.
Eine reine CSS-Lösung wäre cool, aber ich bin glücklich, jQuery oder Javascript zu verwenden, um dies zu erreichen.
Vielen Dank im Voraus.
Spoiler: Sie Javascript erforderlich, das zu tun, ist es nicht kann (tatsächlich) in reinen CSS implementiert werden. – Dinei
@fredrivett hat mich nur mit [seiner Antwort] falsch bewiesen (https://Stackoverflow.com/a/45989590/3136474) (obwohl ich immer noch bevorzuge JavaScript in dieser Angelegenheit). – Dinei
Alle Antworten schienen gut zu sein (danke an alle!), Aber ich entschied mich für Dineis, weil es die geringsten Änderungen an meiner bestehenden Implementierung erforderte. Danke allen! – HerrimanCoder