php - CSS 样式表中的 If ... else 条件语句处理为 PHP

标签 php html css apache conditional-statements

我通过在我的 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

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

感谢您的回复。

关于php - CSS 样式表中的 If ... else 条件语句处理为 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17040986/

相关文章:

php - mySQL PHP 打印多行结果

php - 计算每 2 行的时间戳之间的时间

php - 数据库查询以获取每个用户的最后一条消息(如 facebook 消息)

html - 在 Mac 上垂直对齐 div 中的表情符号

javascript - 如何将带有动画的 div 添加到网页?

html - 仅使用 CSS 根据屏幕高度缩放字体大小

jquery - 3行下拉菜单问题

php - Docker-缓存的已装载卷同步延迟

java - 下拉框在 JSP 中不起作用

javascript - HTML:附加搜索过滤器控件