【问题标题】:Including php variables in CSS (in concrete5)在 CSS 中包含 php 变量(在具体 5 中)
【发布时间】:2017-05-17 20:24:17
【问题描述】:

我按照本教程https://css-tricks.com/css-variables-with-php/ 在 CSS 中使用 php 变量。我正在使用具体 5(5.6 版)CMS。 我加载了 .php 和 .css 文件。

新文件.php

<?php
header("Content-type: text/css; charset: UTF-8");

$clRed = 'red';
?>

NewFile.css

 @import "/path/css/NewFile.php?type=cms";

.one-third{
        width: 33%;
        margin: 0 auto;  
        background: <?php echo $clRed;?>;
    }

但是 css 没有读取 php 变量。

我也参考了这些链接

http://doctype.com/use-php-variables-inside-css-file

how can I use of a php variable into a .css file

PHP Variables in CSS not working

https://www.concrete5.org/community/forums/themes/reusing-editable-values-andor-embedding-php-in-stylesheets

提前致谢。 注意:我知道这不是推荐的做法。

【问题讨论】:

    标签: php css concrete5


    【解决方案1】:

    你忘了 css 是一个 PHP。

    看那里:

    <link rel='stylesheet' type='text/css' href='css/style.php' />
    

    将 NewFile.css 重命名为 NewFile.css.php 即可。但我建议统一文件,只需按照教程所述调用 NewFile.php 即可。在php文件的头部实例化:

    <?php
    header("Content-type: text/css; charset: UTF-8");
    
    $clRed = 'red';
    ?>
    

    文件的其余部分只是带有回声的 css。

    【讨论】:

    • 它不起作用,应该是什么层次结构。我应该先导入 *.css.php 文件还是 *.php 文件?
    • 忘记这两个文件,统一成NewFile.php,放到link的href中。
    • 这行得通,谢谢。对于未来的读者来说,这一行非常重要:- header("Content-type: text/css; charset: UTF-8");和另一个很好的链接 - jafty.com/blog/tag/php-header-content-type-css
    • 需要记住的重要一点:这是一种不好的做法,但可以快速实施。最好的情况是 SASS/LESS 或基于某个 conf 文件(可以是 PHP 文件、JSON 或 INI)创建 CSS 生成器。
    【解决方案2】:

    您不能在 css 文件中编译 php 代码。 您的链接教程将指导您创建一个 php 脚本,该脚本将输出 css 代码并将标题设置为“text/css”。 因此,您可以将您的 php 文件作为 css 样式表链接到 html 页面中。

    在你的情况下,你必须在你的 php 文件中回显你的 css 文件的内容(没有导入)。

    style.php

    <?php
    header("Content-type: text/css; charset: UTF-8");
    
    $clRed = 'red';
    
    echo '.one-third{
        width: 33%;
        margin: 0 auto;  
        background: '.$clRed.';
    }';
    ?>
    

    index.php

    <?php
    echo '<link rel="stylesheet" type="text/css" href="style.php" />';
    ?>
    

    【讨论】:

      【解决方案3】:

      好的,首先你的错误是因为你使用的扩展名是 .css 而不是 .php。试试这个,重命名文件扩展名,然后使用格式

      <style>
      .blabla{
      ....
      }
      
      #heeeHoo{
       ...
      }
      </style>
      

      正如用户 hakiko 在您的参考资料之一中所述,然后使用 &lt;?php include 'style.php'; ?&gt; 将其包含在所需的位置。我相当肯定 PHP include 只是复制和粘贴文件的内容,所以 his solution 应该可以工作。只需确保将其放在 html &lt;head&gt; 标记中

      【讨论】:

      • 嘿,他的解决方案很好,但我的问题是我的应用程序有 4 个子域,将来会有更多的子域,我想给每个子域赋予不同的颜色编码,比如学校正在登录的颜色应该是绿色和白色,当医院使用我的应用程序时,颜色应该是红色和蓝色。该应用程序已经有 15-20 个 css。无法将它们更改为 .css.php 扩展名,所以我的想法是创建一个 css.php 文件并在所有 css 脚本之后加载它。在这种情况下,使用变量会有所帮助,我可以说 if(use=='school') set background = 'red'。
      • 您可以使用 !important 覆盖 CSS 的其他用途
      猜你喜欢
      • 1970-01-01
      • 2011-05-23
      • 2017-08-23
      • 2017-09-09
      • 1970-01-01
      • 2011-11-28
      • 2017-11-22
      • 2015-02-27
      • 2013-05-02
      相关资源
      最近更新 更多