【问题标题】:Font awesome percentage width stacked icon [duplicate]字体真棒百分比宽度堆叠图标[重复]
【发布时间】:2016-06-04 15:26:52
【问题描述】:

我想用CSS实现如下效果:

这个星形图标是一种字体。我想用百分比来定义橙色背景的宽度,所以 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>

最灵活的方法是什么?最灵活的意思是不需要提供任何宽度或高度。

【问题讨论】:

  • @Moogs 太棒了,但我需要使这个宽度内联 - 它是在我的服务器脚本中计算的。我当然可以将 CSS 放到我的 HTML 文件中,但我想避免这种情况。

标签: html css font-awesome


【解决方案1】:

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

【讨论】:

  • 我实际上尝试了类似的方法,但得到的结果不相等。如果一个没有position: absolute 而第二个是,则文本位置不匹配。我需要检查所有继承的样式。
  • 我注意到这太早了,所以我添加了vertical-align,它似乎运行良好。
  • 哈,这个主意!如果可行,我会尝试并选择您的答案!谢谢老兄。
  • 您可以移除容器并将上方图标嵌套在下方图标中。 jsfiddle.net/vco9r2rt/4
  • 非常感谢,伙计们 :) 无论如何我都需要保留容器,因为我在那里有一些填充物,必须保持填充物(而不是边距)。使用填充,我的 % 将不精确。但是现在我在under元素里面使用了我的over元素,这样更方便。感谢vertical-align,Pangloss :)
猜你喜欢
  • 1970-01-01
  • 2018-05-07
  • 1970-01-01
  • 1970-01-01
  • 2014-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-16
相关资源
最近更新 更多