Рандомный фон сайта через css

голоса: 0
Можно ли только средствами css и спецкодами условных операторов в html (без скриптов) настроить рандомный вывод фона сайта из нескольких залитых изображений?
| Автор: | Категория: Дизайн сайта
Изменение категории | | Автор: Yuri_Geruk
Можно мне так делали на моем сайте,около года назад моссео компания.

Ответов: 2

Голоса: +1
 
Лучший ответ
Не во всех шаблонах но можно, примерно так, в шаблоне где есть тэг body меняем его на это <body class="<?if($DAY$=27)?>bodyrd<?endif?>"> в ксс пишем это .bodyrd {background:url(ссылка к фону) no-repeat;} Условие означает, если сегодня 27 число то фон ваш, вместо $DAY$ можно поставить оператор $HOUR$ и поиграться со временем, соответственно меняем класс и пишем нужный стиль в ксс.
| Автор:
Выбор ответа лучшим | | Автор: Бадди Фазуллин
т.е. можно вписывать системные коды в имена классов?  А в пути к файлу? Думал сделать через имя: в пути к файлу типа "ИмяN" сцепить "Имя" и рандомное значение N через код rnd(N) (или через rnd(N-1)+1, чтоб избежать значения 0)...
Бадди Фазуллин,
Системный код не будет отображаться а только его значение, т.е  bodyrd, в случае с rnd тоже можно сделать, но тогда значение rnd будет меняться с каждым обновлением страницы(а может вам так и надо)... мало информации того что вы хотите.

попытка вставки системного кода в css не удалась:  .season, .fall {background:url('/css/Back/<? 'fall0' ?><? rnd(2)+1 ?><? '.jpg' ?>') fixed center; background-size:cover;}, хотя в теле html связка <? 'fall0' ?><? rnd(2)+1 ?><? '.jpg' ?> выдает искомое fallN.jpg  Пробовал и с двойными кавычками и возвращал строку через substr

 

Т.е., все-таки, вставлять код с css нельзя. Пришлось городить ту же условную конструкцию в названии класса в теле html. Но получилось более громоздко и менее изящно )):

css:

.season01 {background:url('/css/Back/fall01.jpg') fixed center; background-size:cover;}
.season02 {background:url('/css/Back/fall02.jpg') fixed center; background-size:cover;}
.season03 {background:url('/css/Back/fall03.jpg') fixed center; background-size:cover;}

html:

<body class="season0<? rnd(2)+1 ?>">

Бадди Фазуллин,
Системные коды в ксс не работают, только в шаблонах, разверните ваш вопрос более детально, что вы хотите сделать.
голоса: 0
  • Нет, исключительно с помощью CSS нельзя, совместно с условиями можно.

Ранее уже был подобный вопрос, пример как это реализуется вы можете найти в материале - http://www.ucoz.ru/qa/index.php/11422 но так же можно и без дублирования, например имеем мы в шаблоне страницы комментариев тег:

<body>

заменяем его на:

<body style=" background: url('<?if($PAGE_ID$='sitePage1')?>ссылка на фото<?else?><?if($PAGE_ID$='sitePage2')?>ссылка на фото<?endif?><?endif?>');">

это лишь пример как можно сделать с помощью условий, и это условие можно продолжать на столько страниц сколько вам нужно, выше в примере лишь на две.

| Автор:
...