2012-01-16 7 views
1

私はいくつかのインラインCSSを動的に生成したいと考えており、PHP経由で可能かどうか疑問に思っていました。PHPによるインライン動的CSSが可能ですか?

基本的に、私はクエリ文字列を介して複数の変数を渡しているし、CSSの値を作成する値でいくつかの演算をしています。これは私のために働いていないと私は本当に可能な場合は、外部スタイルシートと一緒に行く避けるためにしようとしている

<?php 
$var1 = "var1"; 
$var2 = "var2"; 
$divided_amount = $var1/$var1; 
?> 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
     <title>Derp</title> 
</head> 
     <div style="height: <?php echo $divided_amount ?>px;"> 
Dynamic height content here 
     </div> 

</body> 
</html> 

:ここでは私のページは次のようになります。

何か助けと洞察が大変ありがとうございます。

+0

は金額の文字列です:ここで

は、実施例ですか? intsの場合、動作しないのは何ですか?それは –

+0

すべきではない何か? 2つのリテラル文字列を分割する純粋な事実? – madflow

+0

あなたはファイヤーバグのようなツールを使ってdivを検査しましたか?高さが実際に存在するかどうかを確認してください。予想通りブラウザーでレンダリングされていないだけですか? –

答えて

5

$var1を同じ変数($var1)で区切っています。文字列ではなく数値を実際に使用すると仮定すると、これは常に1になります。つまり、div要素は常に1px高いでしょう。

第2に、floatを使用してピクセルの高さを設定していないことを確認するだけで、結果はceil()またはfloor()になります。

あなたのHTMLを検証することを忘れないでください。これは何かが間違っていたことを証明しました。

<?php 
$var1 = "111"; 
$var2 = "7"; 
$divided_amount = floor($var1/$var2); 
?> 
<!DOCTYPE html> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
     <title>Derp</title> 
    </head> 
    <body> 

     <div style="height: <?php echo $divided_amount ?>px; background-color: #F2F;"> 
Dynamic height content here 
     </div> 

    </body> 
</html> 
0

これは問題なく動作します。

を見ていくつかの点:

  • あなたは、文字列ではなく数値を分割しています。
  • お客様のhtmlサンプルには、開封bodyタグがありません。
  • 結果をintにキャストして、有効な数値であることを確認できます。
0

ピクセル幅で小数点以下の桁数を持つことはできませんが、小数点以下の桁から値を返す場合は、その桁を四捨五入する必要があります。私はそれがうまくいかない理由は何も見ません。