16

Font Awesome 5 星图标有<i class="fas fa-star"></i><i class="far fa-star"></i>不同的是fas , far和 Unicodef005现在我想用它作为我的评级系统,首先是普通星,然后通过点击变成实心星,但是我如何fas far在我的 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;
}

使用上面的代码,我只能得到实心星

4

3 回答 3

38

如果您使用的是JS+SVG 版本,请阅读: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>

这是另一个相关问题Font Awesome 5 on pseudo elements shows square 而不是 icon以获取更多详细信息。

于 2018-04-11T08:28:05.730 回答
2

不是 100% 确定在非活动/默认状态下你想要什么类型的星星,所以猜测你需要空心星星。您可以通过更改font-weightto 和 from400或来显着更改 FA5 图标的外观900。我在演示中的重要评论旁边加了星。其余的更改只是可选的杂项样式,例如text-shadows, 2 way transitions on: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>

于 2018-04-11T07:01:07.763 回答
0

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

于 2018-07-31T19:50:40.790 回答