2012-06-08 29 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; 
}