Как сделать в css оформление checkbox-ов. Стилизуем чекбоксы и радиокнопки с CSS3 Radio css оформление

Как сделать в css оформление checkbox-ов. Стилизуем чекбоксы и радиокнопки с CSS3 Radio css оформление

23.12.2020

Приветствую вас на своем блоге, уважаемые читатели, интересующиеся сайтостроением. Сегодня я покажу вам классный прием, который позволит создавать классные чекбоксы, гораздо более красивые, чем те, что предлагает html по умолчанию. Я покажу, как делается в css оформление checkbox -ов. Иными словами, я покажу вам, как сделать на css красивые чекбоксы (checkbox), то есть галочки.

Начальная разметка

Итак, начать нужно с того, чтобы добавить в html код, который выведет наши чекбоксы, а также подписи к ним (label), эти поля нужно связать между собой, чтобы при клике на label можно было устанавливать галочку в поле.

Так, я немного прокомментирую. У нас есть три пары: поле checkbox и подпись к нему. Каждое поле получает свой идентификатор, связка с лейблом происходит с помощью атрибута for , где прописывается имя идентификатора, с которым нужно связать. Пока на странице все выглядит так, то есть это обычный внешний вид чекбоксов. Сейчас мы будем его изменять.

Убираем input, оформляем спаны

Итак, теперь нам надо скрыть со страницы обычные чекбоксы.

Input {
display:none;
}

Теперь нужно как-то оформить новые поля. Оформлять мы будем элементы span, так как они находятся внутри label .

Input + label span{
display:inline-block;
width:40px;
margin-right: 10px;
height:40px;
vertical-align:middle;
border: 5px solid green;
cursor:pointer;
border-radius: 5px;
}

Этим селектором мы выбрали все спаны в лейблах, которые находятся в коде сразу за input ами с типом checkbox . Таким образом, оформление применится к нашим спанам. Мы даем им блочно-строчный тип, определенную ширину и высоту, отступ справа, чтобы текст не прилегал вплотную.

Делаем так, чтобы все заработало

Теперь нужно сделать так, чтобы при клике внутри спана, то есть при выборе какого-то варианта, в него автоматом ставилась галочка. Для этого я для начала нашел в интернете соответствующую иконку с галочкой (она должна быть в формате png), уменьшил ее до размеров нашего поля. Теперь остается вставить такой код:

Input:checked + label span{
background:url(btn.png) no-repeat;
}

Все, теперь работает! Попробуйте пощелкать и вы увидите, что при выборе появляется красивая галочка. Моя картинка лежала в той же папке, что и файл css и называлась btn.png , отсюда и такая запись.

Ну а что же делает наш волшебный селектор input:checked + label span ? По сути, он приказывает браузеру следующее: когда любой из чекбоксов будет отмечен, примени для спанов в лейблах фоновую картинку. Вот так вот все просто, мы обошлись без скриптов, сделав красивые чекбоксы на чистом css. Пишите в комментарии, если что-то непонятно.

Минуточку вашего внимания: Все мы хотим размещать свои сайты на надежном хостинге. Я проанализировал сотни хостингов и нашел лучший - HostIQ В сети сотни положительных отзывов о нем, средняя оценка пользователей - 4.8 из 5. Пусть вашим сайтам будет хорошо.

Сегодня вы узнаете как сделать чекбокс на HTML и добавить ему CSS стилей для лучшей совместимости с дизайном сайта.

Демонстрация

Чекбокс на HTML

Создадим блок с четырьмя чекбоксами, первый будет отмечен – с галочкой. Каждый чекбокс будет заключен в тег label , внутри которого поле для ввода, текст и элемент span , который предстоит стилизовать.

Тег label служит контейнером для каждого чекбокса, для наглядности я временно задал красную рамку тегу label . Когда мало опыта, это хороший способ, увидеть границы любого тега, чтобы не действовать вслепую.

CSS для чекбокс

Строчный тег label , заменим на блочный (display: block) , чтобы чекбоксы, встали друг под другом, user-select: none – запрещает пользователю выделять элемент.

Container {
display: block;
user-select: none;
}

Этот код прячет дефолтные браузерные стили для чекбокса. Мы делаем элемент полностью прозрачным за счет opacity, width и height с нулевым значением и на их месте, задаем кастомные стили для чекбокса.

Container input {
opacity: 0;
height: 0;
width: 0;
}

Создаем кастомные чекбоксы. Меняем размеры и цвет фона.

Checkmark {
height: 23px;
width: 22px;
background-color: #eec321;
}

При наведении курсора, делаем цвет фона немного темнее.

Container:hover input ~ .checkmark {
background-color: #ccc678;
}

Для отмеченного чекбокса, задаем другой цвет для фона.

Container input:checked ~ .checkmark {
background-color: #2196f3;
}

Прячем галочку для не отмеченных чекбоксов, применив псевдоэлемент after .

Checkmark:after {
content: "";
position: absolute;
display: none;
}

Делаем видимой галочку, только для отмеченных чекбоксов.

Container input:checked ~ .checkmark:after {
display: block;
}

Рисуем и стилизуем галочку. Галочку мы рисуем на чистом CSS . Изобразим прямоугольник с белой рамкой, у двух сторон прямоугольника, рамки нет (нулевая ширина), получается прямоугольный угол, мы его поворачиваем на 45 градусов и получается галочка.

Здравствуйте, уважаемые читатели сайта сайт. Следующий элемент, который сегодня мы успеем разобрать радиокнопки и чекбоксы в html . Обычно они используются в целях задания вопроса внутри формы (о создании форм мы говорили ) и, соответственно, через них мы можем предложить человеку варианты ответа. При этом он может выбрать только один из этих вариантов.

Радиокнопки - тип radio

Давайте приступим к реализации радиокнопок. Перейдем в код и для радиокнопок выделим отдельный абзац. В нем и создадим нашу радиокнопку. Кнопка создается при помощи тега input .

Тип укажем radio . Зададим кнопке имя и укажем значение, т.е. какое значение будет отослано обработчику, если эта кнопка будет активна. Для этой кнопке мы укажем значение «yes », т.к. эта кнопка будет отвечать за положительный ответ.

Давайте добавим метку label c ответом «Да » для того, чтобы человек кликнул по метке, и кнопка активировалась автоматически.

Теперь создадим ей противоположную кнопку с ответом «Нет ». Для этого скопируем label и вставим после первого label . Поменяем «Да» на «Нет» и меняем значение «yes» на «no». Обратите внимание, что имя мы должны оставить то же самое. Это скажет браузеру о том, что эти радиокнопки принадлежат к единой группе и что они взаимоисключающие друг друга. То есть, если активировать одну кнопку, то другая деактивируется. Если имена кнопкам дать разные, то можно одновременно активировать обе кнопки.


Вот таким образом можно передавать обработчику значение = выбор того или иного ответа.

Давайте добавим сам вопрос после открытия абзаца. Спросим человека, любит ли он экономить время?

Любите ли Вы экономить время?

И еще один момент, который может вам пригодиться – это автоматическая активация кнопок изначально. Для этого есть специальный атрибут, который можно добавить к нужной кнопке. Эта кнопка будет активирована изначально. Атрибут называется checked - можно перевести как отмеченный. Этому атрибуту не нужно указывать никакого значения.

Любите ли Вы экономить время?

А вот и конечный результат.

Чекбоксы - тип checkbox

Альтернативой радиокнопкам в HTML являются чекбоксы , только в этом случае возможно выделять несколько элементов. Давайте для примера создадим новый абзац и спросим, какими инструментами для экономии времени вы любите пользоваться?
После вопроса укажем новый абзац для создания этих самых чекбоксов. Первый чекбокс будет для ежедневника.

Если проверить наш код в браузере, то выглядеть это будет так:

Теперь таким же образом создадим еще два чекбокса: хронометраж и свои наработки.

Какими инструментами для экономии времени Вы пользуетесь?

Обязательно каждый чекбокс называйте своим уникальным именем.
Если сохранить файл и проверить, то можно увидеть следующее.

Это руководство познакомит вас с флажками (checkbox) HTML и научит обращаться с ними в PHP .

Форма из одного флажка

Давайте создадим простою форму с одним флажком (checkbox).

Вам нужен доступ в интернет?

В PHP скрипте (файл checkbox-form.php) возможно прочитать значение поля посредством массива $_POST . Если $_POST["formWheelchair"] присвоено значение YES, то флажок в был выбран. Если флажок не выбран, то переменная $_POST["formWheelchair"] не установлена.

Вот пример обработки формы на PHP:

Переменной $_POST["formWheelchair"] присвоено значение YES, так как значение атрибута value тега input равно «YES» .

Атрибуту value вместо YES можно установить 1. Не забудьте ваш обновить ваш PHP код, соответственно установленным значениям.

Группа флажков

Нередко возникают ситуации, когда в форму необходимо вставить несколько флажков. Особенно в том случае, когда пользователю необходимо предоставить право выбора из нескольких вариантов. Это важно, так как, например, переключатель (radio) можно выбрать всего один.

Давайте составим форму, которая предоставит пользователю несколько вариантов выбора.

Выберите здания, которые необходимо посетить.
Acorn Building
Brown Hall
Carnegie Complex
Drake Commons
Elliot House

Пожалуйста отметьте, что все флажки имеют одно имя (formDoor). Одно имя говорит о том, что все флажки связаны между собой. Квадратные скобки указывают на то, что все значения будут доступны из одного массива. То есть $_POST["formDoor"] не вернет строку, как в примере выше, вместо нее возвратится массив, содержащий значения флажков, которые были выбраны пользователем.

Например, если я отмечу все флажки, $_POST["formDoor"] вернет массив из {A,B,C,D,E} . В примере ниже мы получаем и отображаем все значения массива.

Функция empty пригодится на тот случай, если пользователь ничего не выбрал. Если же массив не пустой, подсчитываем количество выбранных флажков при помощи функции count и выводим все значения при помощи цикла for .

Если выбран флажок "Acorn Building", то массив будет содержать значение "A".

Проверяем, выбран ли конкретный флажок

Часто требуется проверить: выбран ли конкретный флажок. Для этого можно использовать следующую функцию:

Function IsChecked($chkname,$value) { if(!empty($_POST[$chkname])) { foreach($_POST[$chkname] as $chkval) { if($chkval == $value) { return true; } } } return false; }

Теперь достаточно просто вызвать функцию IsChecked (chkboxname,значение). Например:

If(IsChecked("formDoor","A")) { //do ... }

Галочка в форме HTML, или "чекбокс" задается тегом input , у которого указан тип checkbox .

Галочка обозначает либо согласие, либо несогласие. Если галочка установлена, то браузер осуществляет отправку переменной с именем поля на сервер. Если же она отсутствует, то, соответственно, браузер ничего не отправляет. Поэтому атрибут value нельзя отнести к числу обязательных.

Если есть необходимость в том, чтобы галочка присутствовала по умолчанию, то необходимо добавить к тегу атрибут checked . Выглядеть это будет вот так:

А так чекбокс выглядит в браузере:

Наличие чекбокса не означает, что должен осуществляться выбор какого-то одного элемента из присутствующих. В связи с этим, если в одной форме присутствуют несколько чекбоксов, то им следует задавать разные имена.

Код для формы, приведённой в начале статьи будет следующим:



Что касается названия, то в профессиональной среде поле называют "чекбоксом".



© 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows