我通过在我的 CSS 文件顶部包含以下内容来将 CSS 样式表作为 PHP 处理:
<?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 配置文件,使 CSS 文件能够被 PHP 引擎处理:
<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 中请求的两个样式规则之一。
有谁能告诉我可能出了什么问题吗?感谢阅读。
最佳答案
糟糕...
问题是我的变量 $fixed_navigation_Home 是由 Controller 文件声明的。感谢 Alien 先生引起我的注意。
我现在意识到,问题是网页是无状态的:一旦 PHP 处理器处理完页面变量就会被销毁。因此,我的变量没有被“记住”,因为浏览器在页面生成后调用了样式表。
由于上面给出的原因,将变量声明为全局变量没有帮助。对于那些对该问题感兴趣的人,还有其他页面解释了如何解决“页面之间传递变量”问题:
https://stackoverflow.com/questions/9726352/using-php-variables-across-different-files
Using PHP variables on multiple pages
感谢您的回复。
关于php - CSS 样式表中的 If ... else 条件语句处理为 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17040986/