Переменные фоны через смешивание PHP / CSS - PullRequest
1 голос
/ 14 августа 2010

Я работаю над довольно простой страницей для моей "стажировки".Я не могу вдаваться в подробности, но могу сказать, что это касается овец, лазеров и всего, что вы когда-либо хотели.В любом случае, я пытаюсь сделать так, чтобы фон менялся в зависимости от того, взошло ли солнце.У меня есть функция, работающая должным образом, чтобы определить, является ли это днем ​​или нет, но я не могу заставить ее отображать изображения.

Я никогда раньше не использовал 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 ]

4 голосов
/ 14 августа 2010

Я думаю, вам нужно что-то вроде этого:

<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>
3 голосов
/ 14 августа 2010

Вы также можете сделать это (что я думаю, лучше)

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

Тогда у вас есть эти два класса:

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

EDIT:

Если для функции day специально задано значение «1», это будет неплохо, но если вы хотите просто перехватить любое «истинное» значение, вы также можете использовать это в атрибуте «body» тега body: 1009 *

<?php echo (day()) ? "day" : "night"; ?>
0 голосов
/ 14 августа 2010

Theres no ; после атрибута background-image и '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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...