字体真棒百分比宽度堆积图标

Rob*_*bok 21 html css css3 font-awesome

我想用CSS实现以下效果:

在此输入图像描述

这个星形图标是一种字体.我想用百分比来定义橙色背景的宽度,所以50%应该是恒星的完美一半.

现在,我做了以下事情:

<div class="container">
    <span class="star star-under fa fa-star"></span>
    <span class="star star-over fa fa-star"></span>
</div>
Run Code Online (Sandbox Code Playgroud)

和:

.container
{
    font-size: 200px;
    height: 300px;
    position: relative;
    width: 100%;
}

.star
{
    display: inline-block;
    left: 0;
    position: absolute;
    top: 0;
}

.star-under
{
    color: #ddd;
}

.star-over
{
    color: #f80;
    overflow: hidden;
    width: 30%;
}
Run Code Online (Sandbox Code Playgroud)

问题是我需要提供宽度和高度才能使用%的宽度.如果我跳过容器的宽度和高度,它什么都不显示,因为它包含绝对定位的子项.

这个%值是在服务器端计算的,所以我宁愿保持内联,如下所示:

<span class="star star-over fa fa-star" style="width: 62%;"></span>
Run Code Online (Sandbox Code Playgroud)

最灵活的方法是什么?最灵活的我指的是没有必要提供任何宽度和高度的那个.

Sti*_*ers 7

您可以将容器设置为display:inline-block,并仅将顶部图标设置为position:absolute.

.container {
  font-size: 200px;
  position: relative;
  display: inline-block;
}
.star-under {
  color: #ddd;
  vertical-align: top;
}
.star-over {
  color: #f80;
  position: absolute;
  left: 0;
  top: 0;
  width: 70%;
  overflow: hidden;
}
Run Code Online (Sandbox Code Playgroud)
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
<div class="container">
  <span class="star star-under fa fa-star"></span>
  <span class="star star-over fa fa-star"></span>
</div>
Run Code Online (Sandbox Code Playgroud)

  • 您可以删除容器,只需将Over图标嵌套在under图标内.https://jsfiddle.net/vco9r2rt/4/ (2认同)