Сегодня хочу предложить вам еще один интересный материал, который поможет вам сделать сайт заказчика или свой немножечко красивее. В этой статье речь пойдет о том как изменить radio кнопку и придать ей совершенно новый, более современный вид. Это статья в продолжение прошлой, в которой я рассказал - Как изменить чекбокс с помощью CSS.
В этой статье, по сути будут то же самое. но для радио кнопок. В итоге, после того как вы воспользуетесь материалом из этой статьи, то вы получите результат схожий с примером ниже.
Как и в случаи с чекбоксами, весь фокус делается с помощью тех же псевдоселекторов :checked и :not. Аналогично обычная радио кнопка скрывается, а новая на ее месте отображается, которая и имеет более презентабельный вид.
Обычно, radio кнопки идут по несколько штук сразу. С помощью них вы делаете выбор внутри формы перед отправкой. В примерах я тоже буду размещать по две кнопки. Если вам нужно больше или меньше, то без проблем добавляйте или удаляйте соблюдая некоторые правила о которых я напишу ниже.
К примеру, у нас будет две обычные кнопки, которые будут иметь вот такой код.
К каждой кнопке мы с вами добавили метку с помощью label. Если в старых можно обойтись без них, то в новых они понадобятся в любом случаи. Без них нельзя. В отличии от обычных radio кнопок, у новых так же должен быть указан класс. В итоге получится так:
Как видите, добавлен класс myradio. Именно этому классу и будут присвоены новые стили CSS. Так же не забудьте про другие стандартные параметры радиокнопок, которые нужно добавлять всем кнопкам.
id - кнопкам добавляются айди, для того, чтобы было можно подвязать к ним метки label.
name - имя кнопки. Его можно указывать одинаковым для нескольких радио кнопок, тогда будет возможность переключения между кнопками в форме. Если имена будут разными, то после активации такой кнопки, снять выделение с нее не получится.
for у метки label - должен соответствовать id нужной кнопки. Важным является момент, что label должен располагаться сразу после радио кнопки.
Закончив с HTML разметкой кнопок, вы можете приступить к их внешним изменениям. Как и писал ранее, все стили мы добавим нашему классу - myradio. Для этого в свой файл стилей, вы должны добавить вот такой кусок кода.
Если вы давно работаете с CSS, то на этом все и больше никаких шагов не будет. Можете смотреть результат и править стили под себя. Если же вам код не понятен, но вы хотите как то его разобрать, то попробую объяснить, что за что отвечает. Каждый параметр не буду расписывать, для этого существуют учебники по CSS, лишь объясню основы.
Немного ровняем кнопку для старых версий Internet Explorer.
Прозрачность кружка/точки при активации. Как видно в предыдущем пункте был параметр - opacity: 0;
.myradio:checked + label:after {
opacity: 1;
}
Этот параметр я выделил как опциональный. Его эффект - тень вокруг кнопки при фокусировке во время нажатия на нее. В примере это самые нижние кнопки. Если вам не нравится, можете его не добавлять.
Как и в прошлой статье, думаю, вы поняли смысл и заметили, что особо сложного, здесь ничего нет. Весь код можно менять в соответствии со своими идеями, но не допуская ошибок и придерживаясь советов.