【发布时间】:2019-09-10 04:35:28
【问题描述】:
我正在尝试更改用于显示评论图像的代码。前面的代码有 5 个星星的图像。第一张图片有一颗星,接下来是两颗星,以此类推。每个图像的宽度相同,因此对齐始终正确。使用的代码是
$p_stars = '<img src="images/stars_' . $rating . '.png">';
上面的结果取决于评级,如
****
*****
*
***
我的想法是用字体很棒的图标替换图像,以便更容易控制颜色,如果颜色或星星数量需要更改,则需要更少的维护。我这样做了,它工作得很好,但它需要的代码量远远超过图像。所以我的问题是:
- 我应该坚持使用图片吗?
- 有没有更好的方法来为图标方法编码?
这里是图标方法的代码:
<style>
.stars {color:#FB9802;}
.stars-hide {color:#fff;}
</style>
$p_stars = '';
$p = 0;
while ($p < 5) {
for ($x = 0; $x < $rating; ++$x) {
$p_stars .= '<i class="fas fa-star stars"></i>';
$p++;
}
if ($p == 5) break;
for ($x = $p; $x < 5; ++$x) {
$p_stars .= '<i class="fas fa-star stars-hide"></i>';
$p++;
}
}
【问题讨论】:
-
从标准化和优化的方法来看,使用 Font Awesome,如果广泛使用,特别是对于图标,比一系列不同的图像更有益。因为它是在整个站点中缓存和使用的单个文件下载。想想精灵(包含多个图形的单个图像文件)与必须下载多个图形。但是,如果仅用于星星,则下载一次使用是非常大的资产。至于建议的替换,您可以使用
str_repeat ('<i class="fas fa-star '. $do_hide .'"></i>', $rating)代替 for 循环。
标签: php replace font-awesome-4