Верстка 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 шт):
Как я понял, Вас интересует стилизация радио-кнопок. Дело нехитрое, разметка верная. Правда, названия идентификаторов визуально утяжеляют читабельность кода.
Не знаю, кто виноват в том, что в тегах 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>
