Как изменить стиль input[type=»radio»]?
Как мне поменять стиль радиокнопок, что бы они выглядели как чебоксы? Нужна кроссбраузерность. Нашла в интернете такой код:
input[type="radio"] < -webkit-appearance:checkbox; /*chrome,safari,opera*/ -moz-appearance:checkbox; /*firebox*/ -ms-appearance:checkbox; /*not currently supported*/ >
Но не работает в IE и опере. На основании нишеизложенного
(document).ready(function() < $("input[type=radio]:checked").parent("label").css(" background-position","0 -21px"); >);
div.boolean br div.boolean>label < display: inline-block; text-align: left; padding: 0; margin: 0 10px 0 0; >input[type="radio"] < visibility: hidden; >label:before< display: inline-block; content: ""; width: 20px; height: 20px; border: 1px solid grey; margin-right: 10px; cursor: pointer; border-radius: 4px; background: url('http://www.dis-ag.com/SiteCollectionDocuments/images/checkbox-sprite.png'); background-size: 100%; >
Говорю, html код нельзя менять.
Отслеживать
задан 17 ноя 2015 в 19:52
451 7 7 серебряных знаков 27 27 бронзовых знаков
Для чего вам обманывать пользователя и выдавать радиокнопки за чекбоксы?
17 ноя 2015 в 19:57
Было бы странно, если бы в IE заработало, учитывая комментарий ` /*not currently supported*/`. Придётся вам всё-таки делать чекбоксы и навешивать JS’ом на них обработчики чтобы поведение было аналогично радиокнопкам.
17 ноя 2015 в 21:03
Так не получится, так как я работаю в Битриксе, а там есть радиокнопки — в качестве полей к регистрации.
18 ноя 2015 в 5:46
там наверняка можно указать тип переключателей, какие нужно использовать
18 ноя 2015 в 7:37
только радиокнопки.
18 ноя 2015 в 9:04
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Например через псевдоэлементы + фоновую картинку:
input[type="radio"] + label < display: inline-block; text-align: right; padding: 0; margin: 0 10px 0 0; >input[type="radio"] < visibility: hidden; >input[type="radio"] + label:after < display: inline-block; content: ""; width: 20px; height: 20px; border: 1px solid grey; margin-left: 10px; cursor: pointer; border-radius: 4px; background: url('http://www.dis-ag.com/SiteCollectionDocuments/images/checkbox-sprite.png'); background-size: 100%; >input[type="radio"]:checked + label:after
UPD
$(function()< $("input[type=radio]:checked").parent("label").addClass('active'); $("input[type=radio]").on('change', function(e)< $(this).closest('.fields').find('label').removeClass('active'); $(this).closest('label').addClass('active'); >); >);
div.boolean br < display:none; >div.boolean > label < display: inline-block; text-align: left; padding: 0; margin: 0 10px 0 0; >input[type="radio"] < visibility: hidden; >label:before < display: inline-block; content: ""; width: 20px; height: 20px; border: 1px solid grey; margin-right: 10px; cursor: pointer; border-radius: 4px; background: url('http://www.dis-ag.com/SiteCollectionDocuments/images/checkbox-sprite.png'); /* скопировать себе на сервер */ background-size: 100%; >label.active:before
Отслеживать
ответ дан 19 ноя 2015 в 12:30
5,916 1 1 золотой знак 15 15 серебряных знаков 35 35 бронзовых знаков
СПасибо, но это не то.
24 ноя 2015 в 7:04
html нельзя изменять html нельзя изменять
24 ноя 2015 в 7:10
24 ноя 2015 в 7:15
@RRR Тогда вам только js в помощь
24 ноя 2015 в 7:18
$( document ).ready(function() < if($("input[type=radio]").attr("checked") == 'checked') < $("input[type=radio]").parent("label").css(" background-position","0 -21px"); >>); но не получается.
24 ноя 2015 в 8:01
- html
- css
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.11.15.1019
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Стилизация переключателей (радио-кнопок) в CSS
Радио-кнопки подразумевают, что вы выбираете один элемент из некоторого количества, поэтому элемент получил название переключателя в отличие от флажков, которые подразумевают множественный выбор. Браузеры довольно неплохо отображают радиокнопки по умолчанию.
Выбор 1 Выбор 2 Выбор 2
Однако, вам может понадобится как-то стилизовать эти элементы для своего сайта.
Как правило, стилизация радио-кнопок основана на использовании такого элемента, как label , клик на котором приводит к выбору определенного переключателя, с которым связан с помощью атрибута for, в котором указывается id переключателя. Второй вариант — это когда в разметке радио-переключатель находится внутри элемента label .
Простой пример
See the Pen CSS Radio Buttons by Tristan White (@triss90) on CodePen.18892
Радио-кнопки, похожие на флажки
Если вы хотите стилизовать переключатели в виде флажков — пример от Andrew Vereshchak — как раз то, что нужно.
Переключатели с изменением цвета и иконки
Здесь автор Andrew использовал абсолютное позиционирование для отдельного блока с классом .switch, в который входят 2 и . Также здесь не обошлось без псевдоэлемента ::after и псевдокласса :checked.
Разноцветные радио-кнопки
В этом примере от Dronca Raul каждый переключатель имеет свой цвет и галочку внутри при щелчке на элементе.
See the Pen Custom Radio Buttons by Dronca Raul (@rauldronca) on CodePen.18892
Используем переключатели для выбора цвета
В этом примере тема цветов для переключателей продолжается. Здесь мы не только прячем элемент с помощью CSS, но и изменяем фоновый цвет элемента с id=»output» на тот, который указан в качестве value для и фона для span-элемента, вло женного в .
Переключатели Да-Нет-Возможно
Еще одно цветовое решение от Matthew Blode.
See the Pen Flat Radio — Yes/No by Matthew Blode (@mblode) on CodePen.18892
Трехмерный переключатель от Jon Kantner
See the Pen Radio Tube by Jon Kantner (@jkantner) on CodePen.0
Переключатель макета
Этот пример от Naoya очень удобен для демонстрации макетов с разной шириной. Интересно, что радио-кнопки, а точнее заменяющие их элементы label выглядят как . ссылки с подчеркиванием выбранного (псевдокласс :checked) в данный момент элемента.
Стилизация Radio Button
Несколько примеров изменения вида радио кнопок на чистом CSS. Единственное неудобство метода в том, что приходится указывать уникальные id.
Стандартные элементы
Понадобятся всего два изображения, которые можно объединить в спрайт. Состояния заблокированного элемента и при наведении можно сделать CSS фильтрами.
.form_radio < margin-bottom: 10px; >.form_radio input[type=radio] < display: none; >.form_radio label < display: inline-block; cursor: pointer; position: relative; padding-left: 25px; margin-right: 0; line-height: 18px; user-select: none; >.form_radio label:before < content: ""; display: inline-block; width: 17px; height: 18px; position: absolute; left: 0; bottom: 1px; background: url(/img/radio-1.png) 0 0 no-repeat; >/* Checked */ .form_radio input[type=radio]:checked + label:before < background: url(/img/radio-2.png) 0 0 no-repeat; >/* Hover */ .form_radio label:hover:before < filter: brightness(120%); >/* Disabled */ .form_radio input[type=radio]:disabled + label:before
Radio в виде кнопок
.form_radio_btn < display: inline-block; margin-right: 10px; >.form_radio_btn input[type=radio] < display: none; >.form_radio_btn label < display: inline-block; cursor: pointer; padding: 0px 15px; line-height: 34px; border: 1px solid #999; border-radius: 6px; user-select: none; >/* Checked */ .form_radio_btn input[type=radio]:checked + label < background: #ffe0a6; >/* Hover */ .form_radio_btn label:hover < color: #666; >/* Disabled */ .form_radio_btn input[type=radio]:disabled + label
Группа кнопок
