2016-08-10 9 views
1

EDIT:私は、以下の私の他の答えを見つけました。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>"; 
} 

私はまた、あなたがたときにworking with arraysより理にかなってforeachループに存在していたforループを変更しました。

+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>"; 
} 
関連する問題