Wie füllt man einen Anteil von einem glyphicon [Bootstrap 3]
Hallo ich habe 5 Sterne-rating-system und ich möchte es so machen, dass ich hinzufügen kann, sage 4.3 Sterne statt nur 4. Wie kann ich dies tun? Mein Aktueller code ist unten aufgeführt:
<center>
<span class="glyphicon glyphicon-star" style="color:#BBD41C"></span>
<span class="glyphicon glyphicon-star" style="color:#BBD41C"></span>
<span class="glyphicon glyphicon-star" style="color:#BBD41C"></span>
<span class="glyphicon glyphicon-star" style="color:#BBD41C"></span>
<span class="glyphicon glyphicon-star"></span>
</center>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnten Sie überschneiden sich 2 absolut positionierten divs. Jeder enthält alle 5 Sterne. Dann die top-div könnte ein overflow:hidden div, wo Sie legen Sie die Breite in Höhe eines Prozentsatzes (auf der Grundlage der Bewertung).
Hier ist ein codepen, die ich zusammen gestellt habe, die zeigt es: http://codepen.io/anon/pen/ogBWwX Der code-Schnipsel kopiert werden unten für Referenz und beinhaltet ein wenig mehr als das, was erforderlich ist, für den Zweck der demo.
HTML:
HTML:
CSS:
CSS:
Javascript:
JS:
Hinweise:
Die überlappenden Sterne nicht gut Aussehen, da Sie sehen, ein bisschen von der Farbe des Hintergrunds Sternen an den Rändern. So, es sieht besser aus, wenn Sie loszuwerden, die hintergrund-stars und benutzen Sie einfach eine Farbe. Es ist auch weniger Auffällig, je mehr Sie mit der Farbe.
Ich die CSS für die glyphicons auf display:table-cell zu verhindern, dass Sie aus der Verpackung und positionieren Sie Sie näher zusammen. Mehr Platz zwischen den Sternen erzeugt weniger genaue Ergebnisse, auf Schwimmern.
overflow:hidden
div auf die einzelnen Sterne. So, ein rating von 3.4 würde Ihnen 5 divs mit 3 zu 100%, 1 zu 40% und 1 0% Breite.Können Sie nicht verwenden Sie mehrere Farben für einen icon-font, also, was Sie Fragen ist hier nicht möglich. Sie konnte mit einer partiellen hintergrund füllen, aber das scheint nicht sehr wünschenswert.
Wenn Sie mit dem Schalter Font Awesome Sie würde zumindest den Zugang zu halben Stern Symbole.
Ich fand diese Werke, der große Nachteil ist, dass Sie brauchen, um die Stil-spezifischen Klassen, basierend auf der schriftart, Größe:
HTML:
CSS:
Während diese Antworten sind beide korrekt (in Bezug auf mehrere Farben) und lange und vielleicht zu genaue (überlappende divs, die verwendet Pixel zu bewegen, Dinge) fand ich ein tolles hack gerade jetzt mit der :after-Selektor.
Grundsätzlich, wenn Sie wissen, was der hintergrund Farbe sein wird, können Sie nur decken die Hälfte (oder was auch immer Prozentsatz, den Sie brauchen) ein Charakter auf diese Weise:
HTML:
CSS:
Ersten, habe ich das letter-spacing auf die Hälfte der schriftart "Standard", richtet Sie den folgenden text, Sterne oder andere Elemente korrekt. Dann erstelle ich eine absolut positionierte block
$body-bg
Hälfte der Breite des Sterns und auf halbem Weg über die Sterne (dies ist für ein 4,5-Sterne-Bewertung). Sie können das ändern, dezimal-zu-match Ihre gewünschte Bewertung.Können Sie nicht ändern Sie die Farbe des symbols, und es würde viel mehr hacking hinzufügen, eine andere Farbe oder eine Glyphe über die ersten (denke, die gleiche Weise, wie ich zeigte, aber aus der anderen Richtung), aber es kann getan werden, ohne Javascript, rein mit HTML und CSS diese Weise.
Font-awesome hat eine fertige star-system-Lösung:
Blick auf "Star-Ratings (inspiriert von CSS-Tricks)"
in Ihrer website