【问题标题】:Change CSS value by using PHP使用 PHP 更改 CSS 值
【发布时间】:2014-12-24 11:53:10
【问题描述】:

例如,我有这个 CSS 脚本:

<style>
.header{
background:none:
color:#fff;
}
</style>

然后,我想将标题值更改为:

<style>
.header{
background-color:#fff:
color:#000;
}
</style>

值存储在数据库中。让我感到困惑的是哪个应该是最好的:使用 PHP 脚本或 CSS 甚至 javascript。 我希望它根据我数据库中的 CSS 值进行更改,我可以在需要时再次更改(通过使用 PHP 脚本)。也许这个问题太笼统了,但是,请给我一些我可以很好地执行的脚本。 感谢您的帮助。

【问题讨论】:

  • 你可以有两个类,一个是默认的,一个是逆的。如果满足条件,您可以在标题中添加逆类。像这样&lt;div class=”default &lt;?php echo $flag ? ‘’ : ‘inverse’;?&gt;&gt;
  • scss 或更少有什么问题?
  • 如果你想从数据库中获取数据,那么你需要使用 php 并将该数据应用到 css 中,你可以使用 jquery 或 Javascript
  • 我建议观看 Getify (Kyly Simpson) 的视频 - 可能会为您指明一些有趣的方向:vimeo.com/99916682(tl;dr; CSS 模板)

标签: javascript php html css


【解决方案1】:

首先,将文件的扩展名从(例如)style.css 更改为 style.php。然后将其添加到 CSS 的第一行:

<?php header('Content-Type: text/css'); ?>

之后,您可以将背景的值定义为变量并轻松更改。

background: &lt;?php echo $value; ?&gt;

在你的 php 文件中:

&lt;?php value = "#fff"; ?&gt;

更新:

<?php $value = "#fff"; ?>

【讨论】:

  • 可以更改扩展名吗?这对我来说很奇怪。浏览器会识别为 css 还是 php?
  • 很多人还不知道。不过没关系。有必要改变它。并添加我告诉问题将得到解决的那一行,浏览器会将其识别为 css 文件。它的定义与扩展名为 .css 的 css 文件没有区别
  • @gkol 很高兴为您提供帮助;)
  • 这个方法有效吗?
【解决方案2】:

我认为这两种方式都是一样的。

如果你想使用 php,那么你将不得不使用内联 css 或样式标签,而且很简单。

喜欢

$color = (!dbValue?"defaule value":dbValue);

<style>
.header{
background-color:<?=$color?>:
color:#000;
}
</style>

【讨论】:

    【解决方案3】:

    在那写一个php页面

    $row = mysql_fetch_array(mysql_query('select * from table'));
    
    
    <style>
        .header{ 
            background-color: <?php echo $row['bg_color_from_db']; ?> //change variable
            color:<?php echo $row['color_from_db']; ?>; //change variable
        }
    </style>
    

    【讨论】:

    • 一旦变量数量增加,维护它就会很痛苦。
    • 数据检索不是问题,它方便您检索数据,但主要是如何使用从数据库中获取的数据并在 PHP 中使用,如果您找到满意的解决方案,请投票
    【解决方案4】:

    为了实现这一点,您需要同时使用所有三个,我假设您使用的是在后端设置的 LAMP。您将首先使用 PHP 检索值并存储它们,这是一个很好的帖子来展示这一点。

    Link to Example on Stackoverflow

    一旦您存储了值,您就需要创建一个文件来使用 JavaScript 更改 DOM。这是 Mozilla Developers 制作的一个很好的起点:

    Mozilla JavaScript and CSS

    我建议使用 JavaScript 来实现这一点的原因是能够侦听事件并更改客户端作为响应。希望这会有所帮助。

    【讨论】:

      【解决方案5】:

      出于可维护性和灵活性的原因,我想提出前端,而不是后端解决方案(也是因为到目前为止没有人提出)。

      我特别喜欢Grips library 中采用的方法,您可以在其中编译 CSS 模板,将变量作为输入(即颜色)传递,并获取要使用的 CSS。所有这些都可以在浏览器中发生。您也可以将 Grips 用于 HTML 模板。

      正如我在评论中提到的,this video 是对 Grips 的最佳介绍。

      另外请注意,如果您想在后端使用 Grips,您可以 - 但它是一个 JS 库,因此它不适合您的 PHP 解决方案。

      【讨论】:

        【解决方案6】:

        在此处将您的数据库导入 css 或包含 db 页面;

        $bg_color=$_row['column name'];
        background-color:$bg_color; 
        

        像这样,您将能够使用存储在数据库中的值更改背景颜色

        【讨论】:

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