我正在将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中请求的两个样式规则之一。
有人能告诉我可能出现的问题吗?谢谢你的阅读。
答案 0 :(得分:1)
糟糕......
问题是我的变量$ fixed_navigation_Home,它是由控制器文件声明的。感谢Alien先生引起我的注意。
我现在意识到,问题是网页是无状态的:一旦PHP处理器处理完,页面变量就会被破坏。因此,我的变量没有被“记住”,因为在页面生成之后,浏览器会调用样式表。
由于上面给出的原因,将变量声明为全局变量没有帮助。对于那些对该问题感兴趣的人,还有其他页面解释了如何解决“页面之间的传递变量”问题:
https://stackoverflow.com/questions/9726352/using-php-variables-across-different-files
Using PHP variables on multiple pages
感谢您的回复。
答案 1 :(得分:0)
使用此
帮助你.......
`
echo“'* {'”;
if($ fixed_navigation_Home ==“none”){echo“'display:none;'”;}
else {echo“'display:block;'”;}
echo“'}'”;
&GT;`