php
  • css
  • layout
  • width
  • percentage
  • 2013-10-31 53 views 0 likes 
    0

    我有以下代码:CSS股利%的宽度问题

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

    您应该发布PHP进行错误计算。 – j08691

    +1

    你可以显示产生变量的PHP代码吗?这可能只是需要使用'floor()'而不是'round()'的问题。 – glomad

    +0

    为您添加了PHP代码。 –

    回答

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

    如果你只是想要获得整数值,请尝试使用floor()而不是number_format(),它引入了四舍五入。

    如果您想要获取浮点值,则需要确保您的数字合计为100.您不会显示生成$row的代码,因此很难给出有关该提示的建议。

    +0

    有什么办法通过CSS强制div在同一行? –

    +0

    我想问的原因是地板实际上会产生不正确的数字(按照外观)。 –

    +0

    你可以尝试在外层容器的样式中设置'overflow:hidden'。 – glomad

    相关问题