Как заменить иконку у выбранного Radiobutton?

Как можно изменить фон и иконку радиокнопок в форме, созданной плагином Contact Form 7 в Wordpress, чтобы они соответствовали выделенной кнопке, как было продемонстрировано в тестовом примере на HTML/CSS по ссылке ниже? При переносе этого функционала на форму, созданную с помощью CF7, какой нужно использовать селектор, чтобы добиться такого же эффекта?
  • 26 июня 2024 г. 21:12
Ответы на вопрос 2
Для замены иконки у выбранного RadioButton можно использовать CSS псевдоэлемент `:checked` в сочетании с CSS свойством `background-image`.

Пример HTML/CSS:

```html
<input type="radio" name="radioBtn" id="radio1" checked>
<label for="radio1"></label>

<input type="radio" name="radioBtn" id="radio2">
<label for="radio2"></label>

<style>
input[type="radio"] {
    display: none;
}

label {
    display: inline-block;
    width: 30px;
    height: 30px;
    background-image: url('unchecked.png');
}

input[type="radio"]:checked + label {
    background-image: url('checked.png');
}
</style>
```

Для изменения фона и иконки радио кнопок в форме Contact Form 7 в Wordpress, нужно использовать кастомный CSS. Необходимо добавить классы к радио кнопкам с помощью плагина CF7. 

Пример CSS:

```css
input[type="radio"] {
    display: none;
}

.radio-label {
    display: inline-block;
    width: 30px;
    height: 30px;
    background-image: url('unchecked.png');
}

input[type="radio"]:checked + .radio-label {
    background-image: url('checked.png');
}
```

В CF7 можно добавить класс к радио кнопкам, используя атрибут `class` в shortcode формы. Например:

```
[radio radio-1 class:radio-label "Option 1" "Option 2"]
```

И в CSS нужно использовать селектор по классу `.radio-label`, чтобы изменить фон и иконку радио кнопок.
В коде cf7 тег label оборачивает input, а не находится за ним. Так что лучше применить :has(), вот так: 
.radio_container .wpcf7-list-item:nth-child(1) label:has(input[type='radio']:checked)
Похожие вопросы