Значок Font Awesome с 5 звездами имеет <i class = "fas fa-star"></i> и <i class = "far fa-star"></i>, отличается от fas , far и Unicode для обоих - f005, теперь я хочу использовать его в качестве моей рейтинговой системы, где сначала обычная звезда, а при нажатии становится твердой звездой, но как мне определить этот fasfar в моем css?
input.star:checked ~ label.star:before {
content: '\f005';
color: #e74c3c;
transition: all .25s;
font-family: 'Font Awesome 5 Free';
font-weight: 900;
}
label.star:before {
content: '\f005';
font-family: 'Font Awesome 5 Free';
font-weight: 900;
}
с моими кодами выше я получаю только твердую звезду






Не уверен на 100%, какой тип звезды вам нужен, когда находится в неактивном состоянии / состоянии по умолчанию, поэтому предположил, что вам нужна полая звезда. Вы можете кардинально изменить внешний вид значков FA5, изменив font-weight на 400 или 900 и обратно. Я поставил звездочки рядом с важными комментариями в демо. Остальные изменения - это просто необязательные разные стили, такие как text-shadows, двусторонние transition на :hover и т. д. Хотя это необязательно, вы должны попытаться скрыть фактический флажок и просто использовать метку, это лучше эстетически IMO.
input.star {
/*⭐} By using the label as the interface (button) this can be hidden*/
display: none;
}
.star {
color: rgba(255, 255, 255, 0);
text-shadow: .25px -.25px 1px #000;
transition: .2s ease;
}
.star:hover {
cursor: pointer;
transition: .3s ease;
text-shadow: -5px -6px 4px rgba(255, 142, 86, 0.6);
}
input.star:checked~label.star:hover {
transition: .3s ease;
text-shadow: -5px -6px 4px rgba(255, 142, 86, 0.6);
}
label.star::before {
content: "\f005";
/*⭐} Optional but recommended */
color: #e74c3c;
transition: all .25s;
font-family: 'Font Awesome 5 Free';
/*⭐} By lowering the font-weight, the icon is an outline */
font-weight: 400;
font-size: 32px;
}
input.star:checked~label.star::before {
content: '\f005';
color: #e74c3c;
transition: all .25s;
font-family: 'Font Awesome 5 Free';
font-weight: 900;
}<link href = "https://use.fontawesome.com/releases/v5.0.6/css/all.css" rel = "stylesheet">
<!------------{?} Follow this pattern so that the label acts as a
------------------ remote button to the hidden checkbox-->
<!--⭐} Set an #id on checkbox-->
<input id='lucky' class='star' type='checkbox'>
<!--⭐} Set a [for] attribute with the value of checkbox #id-->
<label for='lucky' class='star'></label>If you are using the JS+SVG version read this: Font Awesome 5 shows empty square when using the JS+SVG version
Разница между версией обычный и твердый - это font-weight. Вам просто нужно настроить его, чтобы переключаться между обеими версиями:
input.star:checked ~ label.star:before {
content: '\f005';
color: #e74c3c;
transition: all .25s;
font-family: 'Font Awesome 5 Free';
font-weight: 900;
}
label.star:before {
content: '\f005';
font-family: 'Font Awesome 5 Free';
font-weight: 200;
}<link rel = "stylesheet" href = "https://use.fontawesome.com/releases/v5.13.0/css/all.css">
<input type = "checkbox" class = "star">
<label class = "star"></label>Вот еще один связанный вопрос Шрифт Awesome 5 на псевдоэлементах показывает квадрат вместо значка для более подробной информации.
Также стоит отметить, что помимо сплошной звезды f005, FontAwesome имеет юникод f006, который является пустой звездой. Это верно, по крайней мере, в той версии, которую я использую.