将数字转换视觉等级(星级)? [关闭](Converting numbers to visual

2019-06-23 19:37发布

在我的数据库ı有数字122.533.544.55

我想这些数字转化为恒星。

我有充分的星半星。

我该怎么做,从数据库中获取信息后?

我对数据库的等级标签。

Answer 1:

<?php
    for($x=1;$x<=$starNumber;$x++) {
        echo '<img src="path/to/star.png" />';
    }
    if (strpos($starNumber,'.')) {
        echo '<img src="path/to/half/star.png" />';
        $x++;
    }
    while ($x<=5) {
        echo '<img src="path/to/blank/star.png" />';
        $x++;
    }
?>

*假设你正在使用PHP



Answer 2:

当我在过去已经这样做了,我用了5空星一个图像的5星填充一个图像的下方。 然后我不喜欢的东西

filled-stars.width = (empty-stars.width * (rating / 5)

这样,您就可以显示像3.2978等评级



Answer 3:

你可以做到这一点,使用PHP,HTML和CSS:

<div class="star-<?=$number?>">
    <b></b><b></b><b></b><b></b><b></b>
</div>

然后,您可以风格与CSS,所以要根据星显示背景图片。 如果转换<b>标签来<a>的标签,它可能更多的语义。



Answer 4:

考虑使用精灵 。 开始与包含的恒星对每个可能的等级行中的图形,然后计算后台的每个半星半星的评级图形次数的高度乘以偏移。

例如:

<?php
$offset =
    ($rating / .5)  // number of half-stars in $rating
  * 15;             // height of each sprite in stars.png
?>
<div style="background-image:url("stars.png");background-position:0 <?php echo $offset; ?>px;"></div>

与JavaScript的一个有点相结合,可以实现一个全功能的收视率小部件 。



Answer 5:

在这里,这增加了明星echo '*'; 并且如果需要半区echo '+';
变化'*''+'以例如<img src="star.gif" /><img src="halfstar.gif" />

// This number of stars:
$number = 2.7;

// Make it integer:
$stars = round( $number * 2, 0, PHP_ROUND_HALF_UP);

// Add full stars:
$i = 1;
while ($i <= $stars - 1) {
    echo '*';
    $i += 2;
}
// Add half star if needed:
if ( $stars & 1 ) echo '+';


文章来源: Converting numbers to visual rating (stars)? [closed]