通过混合PHP / CSS实现可变背景

时间:2010-08-13 21:35:50

标签: php css

我正在为一个非常简单的页面进行“实习”。我不能详细说明,但我可以说它涉及绵羊,激光和你想要的一切。无论如何,我试图得到它,以便背景根据太阳是否外出而改变。我有一个功能正常工作,以确定它是否是白天,但我不能让它显示图像。

我之前从未使用过CSS,更不用说将它与PHP混合使用了,所以我很确定这个代码块就是问题所在:

<style type="text/css">
  body
  {
    background-image: url(
    <?php if( day() == 1 ) { ?> 'day_sheep.jpg'); <?php }
          else             { ?> 'night_sheep.jpg)'; <?php } ?>
    background-position: 50% 50%;
    background-repeat: no-repeat;
  }
</style>

3 个答案:

答案 0 :(得分:4)

我认为你需要这样的东西:

<style type="text/css">
  body
  {
    background-image: url('
    <?php 
    if( day() == 1 ) {
        echo "day_sheep.jpg";
    } else {
        echo "night_sheep.jpg";
    }?>');
    background-position: 50% 50%;
    background-repeat: no-repeat;
  }
</style>

或者,您可以通过执行与此类似的操作来减少它:

<style type="text/css">
  body
  {
    background-image: url('<?php echo (day() == 1 ? "day_sheep.jpg" : "night_sheep.jpg"); ?>');
    background-position: 50% 50%;
    background-repeat: no-repeat;
  }
</style>

答案 1 :(得分:3)

您也可以这样做(我认为更好)

<body class="<?php echo (day() == 1) ? "day" : "night"; ?>">

然后你有这两个类:

.day {
  background:url('day_sheep.jpg');
}
.night {
  background:url('night_sheep.jpg');
}

编辑:

如果在day函数中将day专门设置为“1”,这将是不错的,但是如果你想捕获任何“true”值,你也可以在body标签的“class”属性中使用它: / p>

<?php echo (day()) ? "day" : "night"; ?>

答案 2 :(得分:0)

背景图片属性后没有;,而'day_sheep.jpg')必须是'day_sheep.jpg)';
代码:

<style type="text/css">
  body
  {
    background-image: url(<?php if( day() == 1 ) { ?> 'day_sheep.jpg' <?php }
          else             { ?> 'night_sheep.jpg' <?php } ?>);
    background-position: 50% 50%;
    background-repeat: no-repeat;
  }
</style>