За последние 24 часа нас посетили 60466 программистов и 1751 робот. Сейчас ищут 860 программистов ...

Выделить элемент "включенного" чекбокса

Тема в разделе "PHP для новичков", создана пользователем igorsrt, 20 фев 2016.

  1. igorsrt

    igorsrt Активный пользователь

    С нами с:
    17 сен 2015
    Сообщения:
    65
    Симпатии:
    1
    Здравствуйте!
    В Woocommerce с помощью чекбоксов выбирается способа доставки. Нужно что бы выделялся фон выбранного способа. Насколько я понимаю, это можно сделать присвоив выбранному способу дополнительный класс css...
    Но как это сделать? Помогите пожалуйста..
    Код html в фаербаге примерно такой получается:
    Код (PHP):
    1. <li class="shipping_method">
    2. <input type="radio" name="shipping_method[0]" data-index="0" id="shipping_method_0_flat_rate" value="flat_rate" class="shipping_method" checked="checked"><label for="shipping_method_0_flat_rate">Доставка1</label><div style="float:right;">300 руб.</div></li>
    3. <li class="shipping_method">
    4. <input type="radio" name="shipping_method[0]" data-index="0" id="shipping_method_0_local_delivery" value="local_delivery" class="shipping_method"><label for="shipping_method_0_local_delivery">Доставка2</label><div style="float:right;">500 руб.</a></div></li>
    5.  
    p.s. Пробовал сделать просто через css
    Код (PHP):
    1. .woocommerce ul#shipping_method li:active {background: #dedede;} 
    - не получается (фон выделяется только на момент нажатия ссылки)... (

    Подсказка от модератора:
    Любой код или текст конфигурации пишите между тегом [code=php] и [/code].
    Используйте отступы в коде для форматирования текста.
    Это помогает быстрее понять вас, увеличивает шанс на получение ответа.
    Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, любая другая разметка, результаты array/object dump и т. д.
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Попробуй посмотреть документацию по :checked
     
  3. igorsrt

    igorsrt Активный пользователь

    С нами с:
    17 сен 2015
    Сообщения:
    65
    Симпатии:
    1
    Да, спасибо - это похоже именно то, что нужно.. но так пока и не понял, как сделать что бы стиль применялся ко всему блоку, а не только к чекбоксу.. (
    Пишу
    Код (PHP):
    1. .woocommerce ul#shipping_method li :checked{margin:10px; background: #dedede;} 
    -чекбокс сдвигается, фон не меняется...

    Код (PHP):
    1. .woocommerce ul#shipping_method :checked + li{margin:10px; background: #dedede;} 
    (вроде бы как в примере - но не работает
    если пишу
    Код (PHP):
    1. .woocommerce ul#shipping_method li input:checked + label { 
    - меняется фон только у заголовка.. а мне надо весь блок, который относится к этому чекбоксу

    Подсказка от модератора:
    Любой код или текст конфигурации пишите между тегом [code=php] и [/code].
    Используйте отступы в коде для форматирования текста.
    Это помогает быстрее понять вас, увеличивает шанс на получение ответа.
    Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, любая другая разметка, результаты array/object dump и т. д.
     
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Код (PHP):
    1. .woocommerce .shipping_method input:checked + label
    https://jsfiddle.net/mkf7q9em/Добавлено спустя 9 минут 32 секунды:вроде нельзя сделать, то что ты хочешь
     
  5. igorsrt

    igorsrt Активный пользователь

    С нами с:
    17 сен 2015
    Сообщения:
    65
    Симпатии:
    1
    Добавлено спустя 9 минут 32 секунды:
    А через php задать дополнительный класс для блока с включенным чекбоксом?... Правда в php я понимаю еще меньше чем в css (про jquery уже совсем молчу).. ((
     
  6. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    думаю надо переверстать, чтобы только один блок раскрашивать или дублировать для label и div которые рядом
     
  7. zahermaher

    zahermaher Новичок

    С нами с:
    27 сен 2014
    Сообщения:
    169
    Симпатии:
    14
    попробуй вынести input вынести выше вашего блока . скрой input через display:none.
    создай дополнительный label каждому чекбоксу и стилизуй их под чекбокс.
    Как здесь: http://ruseller.com/lessons.php?id=1656&rub=2

    Так ты сможешь стилизовать блок,при клике ,в котором содержится чекбокс по которому ты кликнул.
     
  8. igorsrt

    igorsrt Активный пользователь

    С нами с:
    17 сен 2015
    Сообщения:
    65
    Симпатии:
    1
    Мне кажется, все-таки более простой метод - это добавлять класс css выбранному элементу с помощью php или js... жалко что я не знаю как это сделать... ((
    попробовал добавить скрипт
    Код (PHP):
    1. <script>
    2. $('#shipping_method').click(function(){
    3.     if($(this).is(":checked")) {
    4.         $(this).addClass("checked");
    5.     } else {
    6.         $(this).removeClass("checked");
    7.     }
    8. });
    9. </script>
    - пока не работает..((

    Подсказка от модератора:
    Любой код или текст конфигурации пишите между тегом [code=php] и [/code].
    Используйте отступы в коде для форматирования текста.
    Это помогает быстрее понять вас, увеличивает шанс на получение ответа.
    Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, любая другая разметка, результаты array/object dump и т. д.