我正在编写一个 PHP 进度条,该进度条将通过提供给它的百分比数字进行自我更新,但我在计算百分比时遇到了问题。
我的代码目前如下:
PHP
$percent = $_GET['percent'];
if($percent < 5)
//low-image.jpg
elseif($percent > 95)
//high-image.jpg
else{
$lowpercent = 100 - $percent;
$highwidth = 270 / 100 * $percent;
$lowwidth = 270 / 100 * $lowpercent;
HTML
<div class="first"></div>
<div class="mid-first" style="width:<?=$highwidth?>px;"></div>
<div class="mid-second" style="width:<?=$lowwidth?>px;"></div>
<div class="last"></div>
CSS
.first. mid-first, .mid-second, .last{
display:block;
float:left;
height:62px;
}
.first{
background:url(low.png);
width:31px;
}
.mid-first{
background:url(mid-first.png) repeat-x;
}
.mid-second{
background:url(mid-second.png);
}
.last{
background:url(high.png);
width:32px;
}
问题
目前百分比计算得有点不正确,我的数学大脑今天似乎放错了位置......
有 4 个 div,第一个和最后一个 div 各占 5%,所以 10%,中间的 div 等于其他 90%。
这意味着当数字 50 通过传入时,$_GET
它将计算出 50% 的中间柱,不包括 5% 的第一个柱,这是错误的,它应该考虑前 5%,然后计算出 50%像素宽度?
如何更改百分比背后的数学以修复两个中间条,以便在应用 50% 时两个中间条的像素相等?