Jump to content
  • 0

Как задать разный background для страниц?


eleonore
 Share

Question

Здравствуйте. На сайте белый background, есть так же главная страница сайта, с размещенным на ней изображением, логотипом и ссылкой входа на сайт, так сказать страница входа. Так вот эта страница входа должна иметь другого цвета background. Подскажите, как поменять его, ведь у body ко всему сайту задан белый цвет?

Link to comment
Share on other sites

24 answers to this question

Recommended Posts

  • 0

эм , в чем проблема ? сделайте какойто блок , задайте ему высоту и задайте ему другой бэкграунд

а ЧТО, не существует какой-то функции позволяющей менять фоны на страницах динамически? а если я захочу для каждой страницы задать разные цвета, мне нужно вставлять кучу новых блоков?...

Link to comment
Share on other sites

  • 0

ну как вариант Javascript'ом  смотреть URL , и в зависимости от этого менять стиль body

Я не сильна в скриптах.. может кто-то посоветует конкретный пример реализации или подробную статью о методах...

ну как вариант Javascript'ом  смотреть URL , и в зависимости от этого менять стиль body

но спасибо за подачу идеи, поищу примеры)

Link to comment
Share on other sites

  • 0

хм берем адресную строку , регуляркой выцепляем название нашей страницы, получаем значение , далее обычный switch 

обычный switch... угу... спасибо и на том  :D  . класс! а может кто-то ещё накидает пример, я думаю строчек 10 всего. Может кто-то?))

Link to comment
Share on other sites

  • 0

ну как вариант Javascript'ом  смотреть URL , и в зависимости от этого менять стиль body

 

Для чего JS? Зачем перекладывать на клиент то, что можно сделать на сервере. Лучше посмотреть в сторону php или любого серверного ЯП.

Link to comment
Share on other sites

  • 0

А что мешает сделать на css? Просто не пишите в style цвет фона. Ставьте в начале каждой страницы <style>background: #123456</style> и будут у вас на каждой страничке разные бэкграунды.

Link to comment
Share on other sites

  • 0

Офигеть вы насоветовали, я такой ерунды давно не читал :). Я так понимаю, что это вордпресс? ВП автоматом назначает классы для <body>. Если это статичная главная страница, то можно сделать как-то так:

body.page.home {background: #f00;}

Ну либо к любому другому элементу, отталкиваясь от body.page.home. Если у body нет классов, то тему разрабатывал злобный буратин: body_class()

 

А вообще вариантов вагон. Можно добавить поле для всех страниц и можно будет в нем указывать цвет фона каждой страницы. Или изображение.

Link to comment
Share on other sites

  • 0

Офигеть вы насоветовали, я такой ерунды давно не читал :). Я так понимаю, что это вордпресс? ВП автоматом назначает классы для <body>. Если это статичная главная страница, то можно сделать как-то так:

body.page.home {background: #f00;}

Ну либо к любому другому элементу, отталкиваясь от body.page.home. Если у body нет классов, то тему разрабатывал злобный буратин: body_class()

 

А вообще вариантов вагон. Можно добавить поле для всех страниц и можно будет в нем указывать цвет фона каждой страницы. Или изображение.

Решила вопрос, подключив в enter.php отдельный стилевой файл 

<link rel="stylesheet" href="<?php bloginfo('stylesheet_directory'); ?>/enter.css" type="text/ css" media="screen, projection" />

 

Link to comment
Share on other sites

  • 0

Если тебе так удобнее... Но это костыли какие-то. Еще и целый файл ради одного стиля подключать. Что помешало использовать классы, по умолчанию вешающиеся на body?

почему - то у меня вешаются классы к body на всех страницах, кроме enter.php (как раз той, у которой нужно было изменить Фоновый цвет).... :unsure:

Если тебе так удобнее... Но это костыли какие-то. Еще и целый файл ради одного стиля подключать. Что помешало использовать классы, по умолчанию вешающиеся на body?

аааа, это потому, что к enter.php я не подключаю header, так как мне не нужен там header с его менюшкой и т.д. а <body <?php body_class($class); ?>>  как раз в header прописан. enter.php - это просто страница входа, в центре которой есть изображение и кнопка "войти на сайт". Не знаю, правильно ли я это все реализовала..

Edited by eleonore
Link to comment
Share on other sites

  • 0

вообще хорошо бы это сделать на стороне сервера

можно в <style> можно отдельным стилевым файлом на вроде как здесь http://fish-drink.ru/ (в нижнем левом углу квадратики), смысл правда немного другой, там для всего сайта стиль меняется, но думаю схема ясна

Edited by Switch74
Link to comment
Share on other sites

  • 0

вообще хорошо бы это сделать на стороне сервера

можно в <style> можно отдельным стилевым файлом на вроде как здесь http://fish-drink.ru/ (в нижнем левом углу квадратики), смысл правда немного другой, там для всего сайта стиль меняется, но думаю схема ясна

Но там вроде тоже 3 разных стилевых файла подключаются..

Link to comment
Share on other sites

  • 0

почему - то у меня вешаются классы к body на всех страницах, кроме enter.php (как раз той, у которой нужно было изменить Фоновый цвет).... :unsure:

 

enter.php - это custom page template? Если да, то там еще на бади нацепится класс "template-enter-php" (или page-template-enter-php, уже не помню точно)

Link to comment
Share on other sites

  • 0

 

почему - то у меня вешаются классы к body на всех страницах, кроме enter.php (как раз той, у которой нужно было изменить Фоновый цвет).... :unsure:

 

enter.php - это custom page template? Если да, то там еще на бади нацепится класс "template-enter-php" (или page-template-enter-php, уже не помню точно)

 

 к enter.php я не подключаю header, так как мне не нужен там header с его менюшкой и т.д. а <body <?php body_class($class); ?>>  как раз в header прописан. enter.php - это просто страница входа, в центре которой есть изображение и кнопка "войти на сайт". Не знаю, правильно ли я это все реализовала..

Link to comment
Share on other sites

  • 0

Ну, у тебя в enter.php есть закоментированная строчка "Template Name: XYZ" и это самое XYZ ты выбираешь при редактировании страницы? Или каким образом ты отображаешь именно этот темплейт для страницы входа?

Link to comment
Share on other sites

  • 0

Ну, у тебя в enter.php есть закоментированная строчка "Template Name: XYZ" и это самое XYZ ты выбираешь при редактировании страницы? Или каким образом ты отображаешь именно этот темплейт для страницы входа?

Да, конечно : /*

Template Name: enter
*/ ))
Link to comment
Share on other sites

  • 0
Да, конечно : /* Template Name: enter */ ))

 

Вот, об этом я и говорю. Это custom page template. Посмотри на body классы после подключения header.php , там есть класс "page-template-enter.php" который всегда будет там, пока имя файла шаблона будет "enter.php". Вот к нему можешь и привязываться в основном файле стилей. Незачем выдумывать с инлайнами или отдельными CSS.

body.page-template-enter-php .some-inner-wrapper {background: #000;}
Link to comment
Share on other sites

  • 0

 

Да, конечно : /* Template Name: enter */ ))

 

Вот, об этом я и говорю. Это custom page template. Посмотри на body классы после подключения header.php , там есть класс "page-template-enter.php" который всегда будет там, пока имя файла шаблона будет "enter.php". Вот к нему можешь и привязываться в основном файле стилей. Незачем выдумывать с инлайнами или отдельными CSS.

body.page-template-enter-php .some-inner-wrapper {background: #000;}

такое есть на всех других страницах, но я не подключаю header к enter.php, откуда возьмутся классы, если не подключается к этому файлу header, а следовательно не срабатывает для этой страницы присвоение классов. ведь <body <?php body_class($class); ?>>  прописан к header, который не подключается к enter.php. Или я туплю где-то?)

Link to comment
Share on other sites

  • 0

Так если это отдельный темплейт, то <body> там свой и ты туда можешь сама классы навешать какие хочешь. Я чего-то не понимаю? Если у тебя несколько страниц с таким темплейтом - добавь галку какую-нибудь в админке при редактировании. Если она стоит - цвет такой-то, если нет - дефолтный. Либо поле для выбора цвета. Это все custom fields. Если не хочется заморачиваться с метабоксами, можно поставить плагин: https://wordpress.org/plugins/advanced-custom-fields/

 

В ACF можно выбирать, при каких условиях показывать поле. Например, если выбран определенный темплейт страницы.

 

И вообще, даже если хедер.пхп не подключен - то ведь body все равно есть, и в него можно добавить классы стандартные.

  • Like 1
Link to comment
Share on other sites

  • 0

Так если это отдельный темплейт, то <body> там свой и ты туда можешь сама классы навешать какие хочешь. Я чего-то не понимаю? Если у тебя несколько страниц с таким темплейтом - добавь галку какую-нибудь в админке при редактировании. Если она стоит - цвет такой-то, если нет - дефолтный. Либо поле для выбора цвета. Это все custom fields. Если не хочется заморачиваться с метабоксами, можно поставить плагин: https://wordpress.org/plugins/advanced-custom-fields/

 

В ACF можно выбирать, при каких условиях показывать поле. Например, если выбран определенный темплейт страницы.

 

И вообще, даже если хедер.пхп не подключен - то ведь body все равно есть, и в него можно добавить классы стандартные.

А я об этом и не подумала. Спасибо за варианты!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy