Задать вопрос
@Valery23

Как сверстать Radio Buttons?

Это радио кнопки вариативного товара Woocommerce. Можно ли как то из такого html кода сверстать что то подобное (как на изображении)?
5e82676e93ef8716101555.png
<div id="picker_pa_razmernyj-ryad">

<ul id="radio_select_pa_razmernyj-ryad5e8265a474230">
    <li>
        <input class="radio-option" id="radio_pa_razmernyj-ryad5e8265a474230_36">
        <label>36</label>
    </li>
    <li class="disabled">
        <input class="radio-option" id="radio_pa_razmernyj-ryad5e8265a474230_37" disabled="disabled">
        <label>37</label>
    </li>
    <li>
        <input class="radio-option" id="radio_pa_razmernyj-ryad5e8265a474230_38">
        <label>38</label>
    </li>
    <li>
        <input class="radio-option" id="radio_pa_razmernyj-ryad5e8265a474230_39">
        <label>39</label>
    </li>
    <li>
        <input class="radio-option" id="radio_pa_razmernyj-ryad5e8265a474230_40">
        <label>40</label>
    </li>
    <li class="disabled">
        <input class="radio-option" id="radio_pa_razmernyj-ryad5e8265a474230_41" disabled="disabled">
        <label>41</label>
    </li>
</ul>

</div>
  • Вопрос задан
  • 247 просмотров
Подписаться 2 Простой Комментировать
Решения вопроса 1
Пригласить эксперта
Ответы на вопрос 2
ArsenyMatytsyn
@ArsenyMatytsyn Куратор тега CSS
Руководитель frontend направления, предприниматель
Для начала, код — невалидное гавно. Смотри сюда, чтобы понять, почему. Кроме прочего, твои label ни к чему не обязывают (оно валидно, но кастрировано).

А ответ да, сделать из этого, как на картинке можно. Приводишь в чувство верстку, скрываешь стилями input, делаешь декоративный список, и по селекторам уже ваяешь обвес для выбранного, деактивированного и т.д.
Ответ написан
profesor08
@profesor08 Куратор тега CSS
Конкретно приведенный html код можно облагородить с помощью css таким образом, чтоб получить результат, идентичный тому, что на картинке.
1. label расположить относительно li абсолютом по центру.
2. отключить системное отображение инпута (appearance: none;) и придать ему нужный вид с рамкой.
3. с помощью селекторов :checked и ~ label стилизовать инпут и лабел соответственно состоянию, для :disabled аналогично.
4. для лабел задать псевдоэлемент нужной высоты и достаточной ширины чтоб была не меньше диагонали контейнера, расположить абсолютом по центру и повернуть на -45deg и задать z-index: -1 чтоб текст не перекрывался.
5. Если плоска вылезает за границы, задать li overflow hidden
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы