如何在php文件中编写css类?

时间:2011-01-23 15:36:54

标签: php css dynamic

我正在创建一些动态模板,我有一个问题,我想在外部CSS文件中使用PHP变量。

示例: 如果样式表是styles.css,然后我想将此文件用作styles.php,以便我可以使用此文件中的变量来使css动态化。

我应该为此做些什么。 提前谢谢。

4 个答案:

答案 0 :(得分:9)

  1. 将文件重命名为styles.php(或配置服务器以在CSS文件中运行PHP解释器)。
  2. 发送相应的Content-Type标题:

    header('Content-Type: text/css');
    
  3. 编写代码:

    <?php
    
    header('Content-Type: text/css');
    
    $a = '#123456';
    $b = '#654321';
    
    ?>
    
    body > a {
        color: <?php echo $a ?>;
    }
    

答案 1 :(得分:2)

使用.htaccess文件和以下行:

  

AddType application / x-httpd-php .css

这将使您的服务器解析.css文件,就好像它们是.php。

答案 2 :(得分:1)

制作动态生成的CSS文件的问题是它们不会被缓存。你将强迫用户至少击中你的服务器两次:一次用于php输出,一次用于css。

如果您只是制作CSS动态的一些小部分,请考虑创建一个包含合适默认值的常规标准CSS文件,然后让您的PHP页面输出一个合适的<style>块来发出覆盖。这样你的主要CSS文件就可以被缓存了,你可以以PHP文件中的几行额外输出为代价获得动态样式。

答案 3 :(得分:-1)

我知道这已经过时了,但@MarcB在缓存上不正确

这是php CSS的可缓存版本

<?php
  ob_start ("ob_gzhandler");
  header("Content-type: text/css; charset: UTF-8");
  header("Cache-Control: must-revalidate");
  $offset = 60 * 60 ;
  $ExpStr = "Expires: " .
  gmdate("D, d M Y H:i:s",
  time() + $offset) . " GMT";
  header($ExpStr);
  $blue="#00f";
  $red="#f00";
  $green="#0f0";
 ?>
  #div{
   color:<?=$blue?>;
   background:<?=$red?>
 }