2012-06-08 51 views
2

我該如何更改div的css,在管理員的主頁上顯示一些文本。 我想在我的插件管理頁面輸入顏色代碼時,代碼在css文件中更新。這是一件很平常的事情,但無法掌握它。用php更改css值

所以這裏是我的div的CSS。

#div{ 

background: #0000; 

} 

這裏是我的管理部分的php代碼。

<?php 
Background Color: <input type="text" size="20" name="background" 
value="<?php get_option('backgroundchanges');?>"/> 

所以基本上我想我在輸入中輸入的值反映在css文件中。

感謝您的任何幫助。

關於,:)

-ROn。

+0

(http://whathaveyoutried.com/) –

+0

你嘗試過什麼?通常情況下,你會將值存儲在數據庫中,然後動態生成CSS,並使用重寫使其看起來像CSS(不是必需但很好),並將MIME類型更改爲text/css。或者你可以將結果寫入一個文件(佔用較少資源)並引用此文件。 –

+0

任何你不能使用jQuery的原因呢?這將是更容易 – chadpeppers

回答

6

實際上,您應該不使用.css文件,而是使用.php文件充當.css文件。然後,您可以將新顏色設置爲.php css文件中的變量。

How to do this

+0

啊!謝謝動態。那工作。正是我所期待的。 :) –

1

撲滅CSS文件通過PHP將增加對服務器的開銷,你將擁有動態的HTML和CSS創建。考慮到CSS的「級聯」特性,HTML頁面中的任何內聯樣式都將覆蓋CSS,因此您可以簡單地將一些內聯樣式添加到已由PHP提供服務的頁面中。另一種選擇是更新使用JavaScript CSS,這裏是做到這一點的一種方式,但我不相信這個工程在所有瀏覽器(我在iOS上使用WebKit中): -

var cssStyle = getCSSRule('#styleName'); 
cssStyle.style.background = redfinedColour; 

...使用從這裏getCSSRule: -

http://www.hunlock.com/blogs/Totally_Pwn_CSS_with_Javascript

+0

它只會給服務器增加一點點的開銷。最多爲毫秒。我之前在龐大的論壇上做過這些,幾乎沒有任何放緩,它確實使您的腳本更加完善 – Steve

2

它是如何我做的是有一個內容裝載機控制或者腳本,將載入圖片/ CSS/JS和它們傳遞到瀏覽器中,你還可以控制緩存和創建javascript動態顯示,如tinyMCE中的圖像列表等:

繼承人一個精簡的例子,但你明白了。

<?php 
$filename = value passed from url 


if(file_exists(SITE_ROOT.'/templates/'.$theme.'/css/'.basename($filename))==true){ 
    $fullpath=SITE_ROOT.'/templates/'.$theme.'/css/'.basename($filename); 
    header("Content-type: text/css"); 
    $search=array('{SITE_URL}','{BACKGROUND}'); 
    $replace=array('http://example.com',get_option('backgroundchanges')); 
    echo str_replace($search,$replace,file_get_contents($fullpath)); 
    die; 
}else{ 
    die('CSS file does not exist!'); 
} 

?> 

然後你CSS文件與佔位符替換爲您的參數:[?你嘗試過什麼]

#div{ 
background: #{BACKGROUND} url('{SITE_URL}/stripe.png') repeat; 
}