【问题标题】:Change css value with php用php更改css值
【发布时间】:2012-06-08 14:24:55
【问题描述】:

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

【问题讨论】:

  • 你试过什么?通常,您会将值存储在数据库中,然后动态生成 CSS,并使用重写使其看起来像 CSS(不是必需的,但很好)并将 MIME 类型更改为 text/css。或者您可以将结果写入文件(资源较少)并引用该文件。
  • 有什么理由不能使用 jquery 来代替这个?会容易很多

标签: php css


【解决方案1】:

您实际上不应使用 .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/

【讨论】:

  • 啊!感谢动态。那行得通。正是我想要的。 :)
  • 会缓存吗?
  • @VikasKandari 看看这个stackoverflow.com/a/4485194/679184header("Cache-Control: max-age=2592000"); //30days (60sec * 60min * 24hours * 30days)
【解决方案2】:

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

【讨论】:

  • 它只会给服务器增加一点点开销。最多毫秒。我以前在大型论坛上做过这个,几乎没有减速,它确实让你的脚本更加
【解决方案3】:

我的做法是有一个内容加载器控制器或脚本来加载图像/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;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-18
    • 1970-01-01
    • 2010-10-08
    • 1970-01-01
    • 2014-01-19
    相关资源
    最近更新 更多