html - Font Awesome 百分比宽度堆叠图标

标签 html css font-awesome

<分区>

我想用CSS实现如下效果:

enter image description here

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

现在,我做了以下事情:

<div class="container">
    <span class="star star-under fa fa-star"></span>
    <span class="star star-over fa fa-star"></span>
</div>

和:

.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%;
}

问题是我需要提供宽度和高度才能使用宽度的百分比。如果我跳过容器的宽度和高度,它不会显示任何内容,因为它包含绝对定位的子项。

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

<span class="star star-over fa fa-star" style="width: 62%;"></span>

最灵活的方法是什么?我所说的最灵活是指不需要提供任何宽度或高度的那种。

最佳答案

您可以将容器设置为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;
}
<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>

关于html - Font Awesome 百分比宽度堆叠图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35566589/

相关文章:

html - 为什么 ionic 标签没有正确呈现?

html - 使用 CSS 拉伸(stretch)单元格

html - 如何将图标放在 <ul> 标签中?

node.js - 让 ngPrime 为 Angular 2 工作

css - 如何在 react 应用程序中为 css 中的伪元素获取 Font Awesome 图标

html - CSS 元素在其他元素之上

html - 父div的CSS掩码伪元素?

javascript - 在Chrome中制作一个保存html页面的按钮(本地)

javascript - 当悬停被移除或消失时如何应用过渡?

jquery - 复选框中的错误已禁用