Профессиональные флажки без фреймворка

С помощью таблицы стилей CSS и функции JavaScript формы изменяют внешний вид.
Есть множество учебников, показывающих, как улучшить внешний вид флажков, работающих с jQuery, Mootool или другими фреймворками Ajax. Но действительно ли эти фреймворки нужны в данном конкретном случае?
На самом деле это можно сделать только с помощью CSS и JavaScript, используя стандартный элемент формы <button>, а не <checkbox>. А также изображение для изменения внешнего вида флажка.
Показ
Чтобы вставить галочку на страницу, код будет выглядеть следующим образом:
<button type="button" class="prettycb" value="0" onclick="setcbimg(this)"></button>
Обратите внимание, что:
1) Мы используем объект <button>, а не <input>, потому что значение последнего отображается, и это не то, что вы хотите здесь. Для объекта button отображается содержимое между тегом открытия и закрытия.
2) Мы уточняем тип «button», это необходимо для управления атрибутом значения браузерами (согласно нашим тестам).
Код CSS
.prettycb
{
background:url('uncheck.png');
background-repeat:no-repeat;
width:16px;
height:16px;
padding:0;
box-shadow:1px 2x 3px #AAA;
-webkit-box-shadow:1px 2px 3px #AAA;
border:none;
}
Флажок инициализируется как снятый с изображения uncheck.png. Это недостаток упрощенного кода в том виде, в каком он есть. Его можно удалить с помощью JavaScript-кода, который инициализирует поля для загрузки страницы, изменяя изображение в зависимости от значения 0 или 1 атрибута значения .
Функция JavaScript
function setcbimg(element)
{
var v = 1 - element.value;
var z = new Image();
if(v)
z.src = "check.png"
else
z.src = "uncheck.png"
element.style.backgroundImage="url(" + z.src + ")";
element.value=v;
}
Эта функция вызывается при щелчке флажка, чтобы установить или снять флажок.
Значение, содержащееся в атрибуте значения, инвертируется и в зависимости от нового значения отображается изображение флажка или нет.
Этот принцип позволяет использовать объект формы для сохранения состояния on/off и избегает управления переменными для этого. Это проще развернуть...
Настроить флажки
Чтобы их изменить, достаточно изменить оба изображения.
И чтобы справиться с проблемами выравнивания флажка с формулировкой слева, возможно, будет добавлено поле в верхней части изображения с прозрачным фоном, или для выравнивания формулировки будет использоваться код CSS.
Этот код можно использовать в том виде, в каком он есть, если все флажки изначально сняты, иначе нужно либо добавить CSS-код для предустановленных флажков, либо создать функцию JavaScript для инициализации флажков в зависимости от их состояния.
Избавиться от JavaScript?
Чтобы избавиться от JavaScript, необходимо использовать селекторы атрибутов [type = checkbox] и псевдокласс: checked или второй селектор атрибутов [checked ].
Только это поддерживают далеко не все браузеры.
Загрузка
Ссылка