【问题标题】:If ... else conditional statements in CSS stylesheet processed as PHPIf ... else CSS 样式表中的条件语句作为 PHP 处理
【发布时间】:2013-06-11 09:39:34
【问题描述】:

通过在我的 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 配置文件,以使 PHP 引擎能够处理 CSS 文件:

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

在我的 CSS 文件中,标题下方是常规 CSS 内容,偶尔会出现 php sn-p,例如

...

<?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 变量吗?
  • 是的,它是:$fixed_navigation_Home = (string) "none";
  • 尝试刷新浏览器缓存 ;)
  • 是的,做了很多次。另外,尝试了 而不是
  • 代码没问题,所以清除你的现金 ctrl+shfit+del 或 ctrl + F5。 :)

标签: php html css apache conditional


【解决方案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

感谢您的回复。

【讨论】:

    【解决方案2】:

    使用这个

    帮助你....

    `

    echo "'* {'";

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

    else {echo "'display: block;'";}

    回显“'}'”;

    ?>`

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-27
      • 2021-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多