如何更改从管理员在我的主页上显示一些文本的div的css。我希望当我在插件管理页面中输入颜色代码时,代码会在 css 文件中更新。这是很常见的事情,但无法掌握它。
所以这是我的div 的 css。
#div{
background: #0000;
}
这是我的管理部分的PHP代码。
<?php
Background Color: <input type="text" size="20" name="background"
value="<?php get_option('backgroundchanges');?>"/>
所以基本上我希望我在输入中输入的值反映在 css 文件中。
感谢您的任何帮助。
问候,:)
-罗恩。
您实际上不应该使用 .css 文件,而应该使用充当.css文件的.php文件。然后,您可以将新颜色设置为.php css文件中的变量。
将样式.css文件重命名为 style.php,然后将以下内容添加到文件顶部:
<?php header("Content-type: text/css"); ?>
这一行告诉浏览器该文件是CSS而不是HTML。在 HTML 文件中,将样式表引用从样式.css更改为样式.php。例如:
<link rel="stylesheet" type="text/css"
media="screen" href="style.php">
引自:http://www.barelyfitz.com/projects/csscolor/
通过PHP发布CSS文件会增加服务器的开销,因为您将需要创建动态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
我的做法是有一个内容加载器控制器或脚本,它将加载图像/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;
}