【问题标题】:CSS Div % width issueCSS Div % 宽度问题
【发布时间】:2013-11-11 18:01:30
【问题描述】:

我有以下代码:

<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`

【问题讨论】:

  • 你应该发布错误计算的 PHP。
  • 你能展示产生变量的 PHP 代码吗?这可能只是需要使用floor() 而不是round() 的问题。
  • 为您添加了 PHP 代码。
  • 不确定这是一个错误计算,但更多的是一个“四舍五入”问题 - 只是不知道如何解决。

标签: php css layout width percentage


【解决方案1】:
$pos = number_format(($row[1]/$row[0])*100,0);
$pass = number_format(($row[2]/$row[0])*100,0);
$neg=100-$pos-$pass

【讨论】:

    【解决方案2】:

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

    如果您尝试获取浮点值,则需要确保您的数字加起来为 100。您没有显示生成 $row 的代码,因此很难为您提供关于那个。

    【讨论】:

    • 有没有办法通过 CSS 强制 div 在同一行?
    • 我问的原因是地板实际上会给出不正确的数字(从外观上看)。
    • 您可以尝试将overflow:hidden设置为外部容器的样式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多