2016-08-10 83 views
1

編輯:我發現了,它在我的下面的其他答案。動態增加for循環中css元素的寬度

我想在php中展示一個圖表並且可以創建列,但是當我嘗試增加與.inner類的css寬度相對應的百分比時,它不會爲數組中的每個元素增加。如何增加數組中每個元素的寬度?

$percentage = array(0.2,0.4,0.5,0.6,0.7,0.8); 

for($i=0;$i<6;$i++){ 

echo "<div class='outter'> 
<div class='inner'>"; echo $percentage[$i]; echo " 
</div> 
</div>"; 

echo "<style type='text/css'>"; 
echo ".outter{height:25px;width:500%;border-right:solid 1px #000;}"; 
echo ".inner{height:25px;width:";echo $percentage[i]; echo "%;border-right:solid 1px #000;background-color:#02abff;}"; 
echo "</style>"; 

} 

我可以在HTML和CSS中做到這一點,但我想做的PHP。謝謝。

回答

1

不知道您是否注意到了,但您在那裏的實際值是0.X%,並且這不完全是有效寬度。您可能需要將該值乘以10(或100)以達到2%(或20%)。

$percentage = array(0.2,0.4,0.5,0.6,0.7,0.8); 

foreach ($percentage as $key => $val) { 
    echo "<div class='outter'> 
     <div class='inner'>"; 
    echo $val; 
    echo "</div> 
     </div>"; 

    echo "<style type='text/css'>"; 
    echo ".outter{height:25px;width:500%;border-right:solid 1px #000;}"; 
    echo ".inner{height:25px;width:"; 
    echo $val * 10; 
    echo "%;border-right:solid 1px #000;background-color:#02abff;}"; 
    echo "</style>"; 
} 

我也改變了for環,你有沒有到foreach循環,這使得更多的意義時working with arrays

+0

是的,我嘗試了各種值,但所有列都獲得相同的寬度。我不知道哪個元素,但都得到相同的,他們如何在div標籤內有不同的值。所以所有的列代表正確的值,但不是在CSS中正確的寬度。 – vasper

+0

我試過你的例子,但同樣的情況 – vasper

0

我找到了。我不得不把樣式放在html標籤中:

foreach($percentage as $percent){ 

echo "<div class='outter' style='height:25px;width:500%;border-right:solid 1px #000;'> 
<div class='inner' style='height:25px;width:"; echo $percent; echo "%;border-right:solid 1px #000;background-color:#02abff;'>"; echo $percent; echo " 
</div> 
</div>"; 
}