CSS Div%宽度问题

时间:2013-10-31 16:06:37

标签: php css layout width percentage

我有以下代码:

<div style='width:635px;height:20px;'>
<div style='float:left;margin-top:1px;margin-bottom:1px;width:".$neg."%;height:18px;background-color: #BF4F4C;'></div>
<div style='float:left;margin-top:1px;margin-bottom:1px;width:".$pass."%;height:18px;background-color: #E37A0D;'></div>
<div style='float:left;margin-top:1px;margin-bottom:1px;width:".$pos."%;height:18px;background-color: #9ABB59;'></div>
</div>

你可以看到'%'是一个PHP变量 - 由于四舍五入,有时这相当于101%,然后最后一个条位于前两个下面而不是旁边。无论如何要阻止这个?

小提琴http://jsfiddle.net/jVter/

PHP

$pos = number_format(($row[1]/$row[0])*100,0);
$pass = number_format(($row[2]/$row[0])*100,0);
$neg = number_format(($row[3]/$row[0])*100,0);

更多代码(这是一个多查询):

SELECT COUNT( ". $r ." ) AS Total, 
(SELECT COUNT( ". $r ." ) FROM  tresults    WHERE ". $r ." >=750) AS Engaged, 
(SELECT COUNT( ". $r ." ) FROM  `tresults` WHERE ". $r ." >=450 AND ". $r ." <=749) AS Passive, 
(SELECT COUNT( ". $r ." ) FROM  `tresults` WHERE ". $r ." <=449) AS Disengaged
FROM  `tresults`

2 个答案:

答案 0 :(得分:2)

$pos = number_format(($row[1]/$row[0])*100,0);
$pass = number_format(($row[2]/$row[0])*100,0);
$neg=100-$pos-$pass

答案 1 :(得分:1)

如果您只是想获取整数值,请尝试使用floor()代替number_format(),这会引入舍入。

如果您尝试获取浮点值,则需要确保您的数字加起来为100.您不会显示产生$row的代码,因此很难给您关于那个的建议。