字体真棒 5 unicode

Font Awesome 5 unicode

Font Awesome 5 星图标有 <i class="fas fa-star"></i><i class="far fa-star"></i> 不同的是 fas , far 两者的 Unicode 是 f005 现在我想用它作为我的评级系统首先是普通星星,点击后变成实心星星,但是我如何在我的 css 中定义这个 fas far?

代码

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% 确定在 inactive/default 状态下您想要哪种类型的星星,所以我猜您需要空心星星。您可以通过将 font-weight 更改为 400900 来显着更改 FA5 图标的外观。我在演示中的重要评论旁边放置了星星。剩下的变化只是可选的杂项样式,如 text-shadows:hover 上的 2 way transitions 等。虽然是可选的,但你应该尝试隐藏实际的复选框并只使用标签,这样更好美学上的 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>

如果您使用的是 JS+SVG 版本,请阅读:

常规纯色版本之间的区别是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>

这里是另一个相关问题了解更多详情。

此外,值得注意的是,除了 f005 实心星之外,FontAwesome 还具有 unicode f006 空心星。至少在我使用的版本中是这样。