2016-05-22 3 views
4

Как я могу использовать CSS для заполнения цвета фона звезды UTF-8 (☆)? Я попытался с помощью, но это только изменяет цвет границы:Заполнить цвет UTF-8 star

.rating { 
 
    color: #f70; 
 
}
<p class="rating">&#9734;&#9734;&#9734;&#9734;</p>

+1

тихо похож на http://stackoverflow.com/questions/36377918/how-to-change-inner-color-of-glyphicons-in-bootstrap/36378074, если не дубликат –

ответ

0

Почему бы не использовать &#9733; или &#x2605; UTF8 символы?

div { 
 
    padding: 2px; 
 
    background: cornflowerblue; 
 
    border: 2px solid lightgray; 
 
    border-radius: 2px; 
 
    display: inline-block; 
 
} 
 
div span { 
 
    position: relative; 
 
} 
 
div span:before { 
 
    content: "\2605"; 
 
    position: absolute; 
 
    transition:all 0.4s; 
 
    color: gold; 
 
} 
 
div span:hover ~ span:before { 
 
    content: "\2606"; 
 
    color: black; 
 
}
<div> 
 
    <span>&#9734;</span> 
 
    <span>&#9734;</span> 
 
    <span>&#9734;</span> 
 
    <span>&#9734;</span> 
 
    <span>&#9734;</span> 
 
</div>

И с помощью псевдо-элементов, вы даже можете добавить функциональные возможности, такие как системы рейтинга 5 звезд.

0

Вы можете создать рейтинговую систему со звездой (в CSS + JavaScript), используя только css-формы и javascript. Этот код также работает с другими кодировками!

@import url(//netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.css); 
 

 
fieldset, label { margin: 0; padding: 0; } 
 
body{ margin: 20px; } 
 

 
/****** Style Star Rating Widget *****/ 
 

 
.rating { 
 
    border: none; 
 
    float: left; 
 
} 
 

 
.rating > input { display: none; } 
 
.rating > label:before { 
 
    margin: 5px; 
 
    font-size: 1.25em; 
 
    font-family: FontAwesome; 
 
    display: inline-block; 
 
    content: "\f005"; 
 
} 
 

 
.rating > .half:before { 
 
    content: "\f089"; 
 
    position: absolute; 
 
} 
 

 
.rating > label { 
 
    color: #ddd; 
 
float: right; 
 
} 
 

 
/***** CSS Magic to Highlight Stars on Hover *****/ 
 

 
.rating > input:checked ~ label, /* show gold star when clicked */ 
 
.rating:not(:checked) > label:hover, /* hover current star */ 
 
.rating:not(:checked) > label:hover ~ label { color: #FFD700; } /* hover previous stars in list */ 
 

 
.rating > input:checked + label:hover, /* hover current star when changing rating */ 
 
.rating > input:checked ~ label:hover, 
 
.rating > label:hover ~ input:checked ~ label, /* lighten current selection */ 
 
.rating > input:checked ~ label:hover ~ label { color: #FFED85; }
<fieldset class="rating"> 
 
    <input type="radio" id="star5" name="rating" value="5" /><label class = "full" for="star5" title="Awesome - 5 stars"></label> 
 
    <input type="radio" id="star4half" name="rating" value="4 and a half" /><label class="half" for="star4half" title="Pretty good - 4.5 stars"></label> 
 
    <input type="radio" id="star4" name="rating" value="4" /><label class = "full" for="star4" title="Pretty good - 4 stars"></label> 
 
    <input type="radio" id="star3half" name="rating" value="3 and a half" /><label class="half" for="star3half" title="Meh - 3.5 stars"></label> 
 
    <input type="radio" id="star3" name="rating" value="3" /><label class = "full" for="star3" title="Meh - 3 stars"></label> 
 
    <input type="radio" id="star2half" name="rating" value="2 and a half" /><label class="half" for="star2half" title="Kinda bad - 2.5 stars"></label> 
 
    <input type="radio" id="star2" name="rating" value="2" /><label class = "full" for="star2" title="Kinda bad - 2 stars"></label> 
 
    <input type="radio" id="star1half" name="rating" value="1 and a half" /><label class="half" for="star1half" title="Meh - 1.5 stars"></label> 
 
    <input type="radio" id="star1" name="rating" value="1" /><label class = "full" for="star1" title="Sucks big time - 1 star"></label> 
 
    <input type="radio" id="starhalf" name="rating" value="half" /><label class="half" for="starhalf" title="Sucks big time - 0.5 stars"></label> 
 
</fieldset>

Смежные вопросы