2012-01-16 51 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

是大量字符串?如果整數,什麼不工作?它應該 – 2012-01-16 22:32:54

+0

什麼不工作?你分割兩個字符串的純粹事實? – madflow 2012-01-16 22:33:41

+0

您是否使用諸如螢火蟲之類的工具檢查了div,看看其中的高度實際上是否存在,並且它僅僅是不會像您期望的那樣被瀏覽器渲染? – 2012-01-16 22:33:58

回答

5

您將$var1除以相同的變量($var1)。假設你實際使用數字而不是字符串,這總是會導致1.這意味着你的div元素將總是1px高。

其次,你應該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

我不認爲你可以有像素寬度小數,如果你從小數點返回一個值(這幾乎是可能的),那麼你應該圍繞數字。然後我看不出有什麼理由不起作用。