php
  • css
  • layout
  • width
  • percentage
  • 2013-10-31 108 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

    相關問題