如果...将CSS样式表中的条件语句处理为PHP

时间:2013-06-11 09:39:34

标签: php html css apache conditional

我正在将CSS样式表作为PHP处理,方法是在CSS文件的顶部包含以下内容:

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

我的CSS样式表(style.css)被调用如下:

<style type="text/css">@import url("style.css") only screen and (min-device-width: 321px), only print;</style>

我已按以下方式更改了我的Apache配置文件,以便PHP引擎能够处理CSS文件:

<FilesMatch "^.*?common.*?$">
SetHandler php5-script
</FilesMatch>

在我的CSS文件中,标题下方是常规的CSS内容,偶尔会有php片段,例如。

...

<?php echo "* {margin: 10px; padding: 10px;}"; ?>

html
{
    background-color: #FFF;
    overflow-y: scroll;
}

以上工作正常,但是如果我尝试包含一个php条件语句,我会遇到问题。例如,以下内容:

<?php
echo "* {";
if ($fixed_navigation_Home == "none") {echo "display: none;";}
else {echo "display: block;";}
echo "}";
?>

...仅生产:

* {
}

...而不是PHP中请求的两个样式规则之一。

有人能告诉我可能出现的问题吗?谢谢你的阅读。

2 个答案:

答案 0 :(得分:1)

糟糕......

问题是我的变量$ fixed_navigation_Home,它是由控制器文件声明的。感谢Alien先生引起我的注意。

我现在意识到,问题是网页是无状态的:一旦PHP处理器处理完,页面变量就会被破坏。因此,我的变量没有被“记住”,因为在页面生成之后,浏览器会调用样式表。

由于上面给出的原因,将变量声明为全局变量没有帮助。对于那些对该问题感兴趣的人,还有其他页面解释了如何解决“页面之间的传递变量”问题:

https://stackoverflow.com/questions/9726352/using-php-variables-across-different-files

Number of ways to share a variable defined in one PHP file among all the files of a website / application?

Using PHP variables on multiple pages

感谢您的回复。

答案 1 :(得分:0)

使用此

帮助你.......

`

echo“'* {'”;

if($ fixed_navigation_Home ==“none”){echo“'display:none;'”;}

else {echo“'display:block;'”;}

echo“'}'”;

&GT;`