eleonore

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

    Рекомендуемые сообщения

    eleonore    2
    eleonore

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

    Поделиться сообщением


    Ссылка на сообщение
    Поделиться на других сайтах
    Galaxy    109
    Galaxy

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

    Поделиться сообщением


    Ссылка на сообщение
    Поделиться на других сайтах
    eleonore    2
    eleonore

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

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

    Поделиться сообщением


    Ссылка на сообщение
    Поделиться на других сайтах
    Galaxy    109
    Galaxy

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

    Поделиться сообщением


    Ссылка на сообщение
    Поделиться на других сайтах
    eleonore    2
    eleonore

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

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

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

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

    Поделиться сообщением


    Ссылка на сообщение
    Поделиться на других сайтах
    eleonore    2
    eleonore

    я думаю смысл такой :

    if page home - body style: background{ #000}

    else background # fff

    Я не умею писать скрипты, помогите реализовать мысль, пожалуйста в правильные строки кода :unsure: )

    Поделиться сообщением


    Ссылка на сообщение
    Поделиться на других сайтах
    Galaxy    109
    Galaxy

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

    Поделиться сообщением


    Ссылка на сообщение
    Поделиться на других сайтах
    eleonore    2
    eleonore

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

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

    Поделиться сообщением


    Ссылка на сообщение
    Поделиться на других сайтах
    roman_kr_ru    1
    roman_kr_ru

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

     

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

    Поделиться сообщением


    Ссылка на сообщение
    Поделиться на других сайтах
    Galaxy    109
    Galaxy

    сайт уже может быть на движке

    Поделиться сообщением


    Ссылка на сообщение
    Поделиться на других сайтах
    Melodyn    4
    Melodyn

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

    Поделиться сообщением


    Ссылка на сообщение
    Поделиться на других сайтах
    hedgehog    149
    hedgehog

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

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

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

     

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

    Поделиться сообщением


    Ссылка на сообщение
    Поделиться на других сайтах
    eleonore    2
    eleonore

    Офигеть вы насоветовали, я такой ерунды давно не читал :). Я так понимаю, что это вордпресс? ВП автоматом назначает классы для <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" />

     

    Поделиться сообщением


    Ссылка на сообщение
    Поделиться на других сайтах
    hedgehog    149
    hedgehog

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

    Поделиться сообщением


    Ссылка на сообщение
    Поделиться на других сайтах
    eleonore    2
    eleonore

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

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

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

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

    Изменено пользователем eleonore

    Поделиться сообщением


    Ссылка на сообщение
    Поделиться на других сайтах
    Switch74    270
    Switch74

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

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

    Изменено пользователем Switch74

    Поделиться сообщением


    Ссылка на сообщение
    Поделиться на других сайтах
    eleonore    2
    eleonore

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

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

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

    Поделиться сообщением


    Ссылка на сообщение
    Поделиться на других сайтах
    hedgehog    149
    hedgehog

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

     

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

    Поделиться сообщением


    Ссылка на сообщение
    Поделиться на других сайтах
    eleonore    2
    eleonore

     

    почему - то у меня вешаются классы к 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 - это просто страница входа, в центре которой есть изображение и кнопка "войти на сайт". Не знаю, правильно ли я это все реализовала..

    Поделиться сообщением


    Ссылка на сообщение
    Поделиться на других сайтах
    hedgehog    149
    hedgehog

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

    Поделиться сообщением


    Ссылка на сообщение
    Поделиться на других сайтах
    eleonore    2
    eleonore

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

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

    Template Name: enter
    */ ))

    Поделиться сообщением


    Ссылка на сообщение
    Поделиться на других сайтах
    hedgehog    149
    hedgehog
    Да, конечно : /* 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;}

    Поделиться сообщением


    Ссылка на сообщение
    Поделиться на других сайтах
    eleonore    2
    eleonore

     

    Да, конечно : /* 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. Или я туплю где-то?)

    Поделиться сообщением


    Ссылка на сообщение
    Поделиться на других сайтах
    hedgehog    149
    hedgehog

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

     

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

     

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

    • Like 1

    Поделиться сообщением


    Ссылка на сообщение
    Поделиться на других сайтах
    eleonore    2
    eleonore

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

     

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

     

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

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

    Поделиться сообщением


    Ссылка на сообщение
    Поделиться на других сайтах

    Создайте аккаунт или войдите в него для комментирования

    Вы должны быть пользователем, чтобы оставить комментарий

    Создать аккаунт

    Зарегистрируйтесь для получения аккаунта. Это просто!

    Зарегистрировать аккаунт

    Войти

    Уже зарегистрированы? Войдите здесь.

    Войти сейчас

    • Войти через Facebook
    • Войти через Twitter
    • Войти через Microsoft
    • Войти через LinkedIn
    • Войти через Google