Верстка Radio Buttons (woocommerce)

Это радио кнопки вариативного товара Woocommerce. Такой html генерируется автоматически (я удалила прочие атрибуты, что бы вопрос был проще и красивее). Я не сильна в css, можно ли как то из такого html кода сверстать что то подобное (как на изображении)?

введите сюда описание изображения

<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>

Ответы (1 шт):

Автор решения: UModeL

Как я понял, Вас интересует стилизация радио-кнопок. Дело нехитрое, разметка верная. Правда, названия идентификаторов визуально утяжеляют читабельность кода.

Не знаю, кто виноват в том, что в тегах input не были указаны атрибуты type и name, но без них ничего бы не работало (если только всё не управляется какими-то безумными скриптами). Добавил необходимые атрибуты.

Обводку в 1px практически не видно. Понимаю, дизайн и всё такое, но есть люди с ослабленным зрением, при этом с деньгами - не стоит терять потенциальных клиентов из-за неразборчивого интерфейса. Увеличил толщину обводки до 2px (но, надо бы подкорректировать цветовую схему).

В разметке больше ничего не удалял и не изменял. Собственно, код:

div#picker_pa_razmernyj-ryad {
  margin: 32px auto;
  display: flex;
  justify-content: center;
}

div#picker_pa_razmernyj-ryad ul {
  display: inline-block;
  padding: 0;
  list-style-type: none;
}

div#picker_pa_razmernyj-ryad li {
  position: relative;
  margin: 0px 1px;
  display: inline-block;
  width: 30px;
  height: 30px;
}

div#picker_pa_razmernyj-ryad li>input {
  margin: 0;
  height: 100%;
  width: 100%;
  opacity: 0;
  cursor: pointer;
}

div#picker_pa_razmernyj-ryad li>input:disabled {
  cursor: default;
}

div#picker_pa_razmernyj-ryad li>input+label {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  text-align: center;
  font: 12px/30px 'Arial';
  outline: 2px solid #f2f2f2;
  pointer-events: none;
  color: #808080;
}

div#picker_pa_razmernyj-ryad li>input:checked+label {
  outline: 2px solid #000000;
  color: #000000;
}

div#picker_pa_razmernyj-ryad li>input:disabled+label::before {
  content: '';
  position: absolute;
  top: 14px;
  left: -7px;
  height: 2px;
  width: 45px;
  transform: rotate(-45deg);
  background-color: #f2f2f2;
}
<div id="picker_pa_razmernyj-ryad">

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

</div>

→ Ссылка