6

如何从管理员更改在我的主页上显示一些文本的 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 文件中。

谢谢你的帮助。

问候, :)

-Ron。

4

3 回答 3

14

您实际上不应该使用 .css 文件,而应使用 .php 文件作为 .css 文件。然后,您可以将新颜色设置为 .php css 文件中的变量。

将您的 style.css 文件重命名为 style.php,然后将以下内容添加到文件顶部:

<?php header("Content-type: text/css"); ?>

这一行告诉浏览器该文件是 CSS 而不是 HTML。在您的 HTML 文件中,将样式表引用从 style.css 更改为 style.php。例如:

<link rel="stylesheet" type="text/css"
 media="screen" href="style.php">

引用:http ://www.barelyfitz.com/projects/csscolor/

于 2012-06-08T14:28:20.857 回答
4

通过 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

于 2012-06-08T14:32:01.390 回答
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;
}
于 2012-06-08T14:36:53.950 回答