27.08.13, 10:33
0 комментарий
  Уроки

Оформление чекбоксов и радио-кнопок при помощи CSS3

С появлением CSS3 у нас появилась возможность оформлять практически что угодно и как угодно. В нашей сегодняшней статье, как видно из заголовка, мы поговорим о том, как оформить внешний вид чекбокса и радио-кнопки.

Эти два типа элементов ввода представляют собой новые элементы форм, которые довольно-таки сложно правильно и красиво оформить (таким образом, чтобы они выглядели одинаково на разных платформах) – Windows, OS X и Linux отличаются в дизайне и способе отображения этих элементов формы.

Если вы хотите оформить эти два элемента форм, то это руководство как раз для вас. Итак, давайте приступим.

HTML-разметка

Давайте начнем с создания нового HTML-документа. HTML-структура документа будет следующей.

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

<div class="radio">
	<input id="male" type="radio" name="gender" value="male">
	<label for="male">Male</label>
	<input id="female" type="radio" name="gender" value="female">
	<label for="female">Female</label>
</div>


Чекбокс

<div class="checkbox">
	<input id="check1" type="checkbox" name="check" value="check1">
	<label for="check1">Checkbox No. 1</label>
	<br>
	<input id="check2" type="checkbox" name="check" value="check2">
	<label for="check2">Checkbox No. 2</label>
</div>


CSS-код

Итак, мы закончили с нашей разметкой HTML, и теперь давайте приступим к созданию стилизации этих 'input'-элементов. Сначала давайте займемся оформлением типа радио-кнопки. Суть заключается в том, чтобы изменить стандартный дизайн в ОС на то, что показано на скриншоте ниже.

Оформление чекбоксов и радио-кнопок при помощи CSS3


Оформляем радио-кнопку

Прежде всего, мы изменяем курсор на указатель, что позволит нам оповестить пользователя о том, что по этому элементу можно нажимать.

label {
	display: inline-block;
	cursor: pointer;
	position: relative;
	padding-left: 25px;
	margin-right: 15px;
	font-size: 13px;
}


Затем мы скрываем сам радио-ввод.

input[type=radio] {
	display: none;
}


Далее мы заменяем скрытый радио-ввод на псевдо-элемент :before.

label:before {
	content: "";
	display: inline-block;

	width: 16px;
	height: 16px;

	margin-right: 10px;
	position: absolute;
	left: 0;
	bottom: 1px;
	background-color: #aaa;
	box-shadow: inset 0px 2px 3px 0px rgba(0, 0, 0, .3), 0px 1px 0px 0px rgba(255, 255, 255, .8);
}


Вышеприведенные стили применяются и к чекбоксу. Единственное различие заключается в том, что радио-ввод представлен в виде окружности. Чтобы достичь такого эффекта, мы добавляем border-radius, значение которого составляет ровно половину высоты и ширины элемента.

.radio label:before {
	border-radius: 8px;
}


На данном этапе наш проект выглядит следующим образом:

Оформление чекбоксов и радио-кнопок при помощи CSS3


Теперь внутрь мы добавим небольшую окружность, когда элемент ввода выделен. Мы воспользуемся CSS3 псевдо-классом :checked вместе с HTML-символом табуляции (
&#8226;

).
Этот знак табулированного списка будет отображен при помощи параметра content, и поэтому нам нужно конвертировать его из HTML в CSS при помощи Entity Conversion Tool.

input[type=radio]:checked + label:before {
    content: "2022";
    color: #f3f3f3;
    font-size: 30px;
    text-align: center;
    line-height: 18px;
}


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

Оформление чекбоксов и радио-кнопок при помощи CSS3


С другой стороны, вы также можете воспользоваться изображением, и отобразить его при помощи параметра background-image в псевдо-элементе :before, который мы добавили ранее. Мы не использовали его, так как предпочитаем не использовать изображения, если есть другие варианты.

Оформляем чекбокс

Теперь давайте оформим внешний вид чекбокса. Прежде всего, мы также скроем этот элемент.

input[type=checkbox] {
	display: none;
}


Так как мы заменили элемент ввода на псевдо-элемент :before, теперь мы можем добавить закругленные углы.

.checkbox label:before {
	border-radius: 3px;
}


Далее нам нужно добавить галочку тем же образом, как мы сделали это в случае с радио-вводом. На этот раз мы воспользуемся HTML-символом галочки (
&#10003;

).

input[type=checkbox]:checked + label:before {
	content: "2713";
	text-shadow: 1px 1px 1px rgba(0, 0, 0, .2);
	font-size: 15px;
	color: #f3f3f3;
	text-align: center;
    line-height: 15px;
}

А теперь давайте посмотрим на финальный результат.

Оформление чекбоксов и радио-кнопок при помощи CSS3


В завершение

Это всего лишь одна из техник стилизации элементов ввода, и вы, конечно же, в праве и силах самостоятельно дорабатывать этот метод оформления. Так как мы использовали CSS3 :checked, эта техника будет работать только в тех браузерах, где имеется соответствующая поддержка. Так что, если вы хотите, вы также можете использовать jQuery-плагин.

Наконец, исходники Вы можете посмотреть в архиве.

СКАЧАТЬ

Вес файла
25.83 Kb

Реклама

Напишите своё мнение

  • acuteaggressiveair_kissangel
    badbbbeachbeee
    biggrinbig_bossblumblush
    boastbombboredombye
    clappingcraycrazycurtsey
    dancedashdeclarediablo
    diroldon-t_mentiondownloaddrinks
    first_moveflirtfocusfool
    friendsgive_heartgive_rosegood
    hangheartheathelp
    hihunterhystericireful
    kingkisslaughlazy
    lolmail1mambaman_in_love
    mdamega_shokmoilmosking
    musicneanegativenew_russian
    okon_the_quietpardonparting
    partypilotpioneerpleasantry
    popcormpranksterprevedpunish
    roflrtfmrussiansad
    sarcasticscarescratchsearch
    secretsensoredshokshout
    slowsmilesmokesoldier
    soldier_girlsorryspitefulspruce_up
    stinkersuicidesunsuperstition
    swoonteasetenderthanks
    thisto_pick_ones_noseto_take_umbragetreaten
    umnikunknwvampirevava
    victorywackowhistlewink
    wizardyahooyesyu
    e101e102e103e104
    e105e106e107e108
    e109e110e111e112
    e113e114e115e116
    e117e118e119e120
    e121e122e123e124
    e125e126e127e128
    e129e130e131e132
    e133e134e135e136
    e137e138e139e140
    e141e142e143e144
    e145e146e147e148
    e149e150e151e152
    e153e154e155e156
    e157e158e159e160
    e161e162e163e164
    e165e166e167e168
    e169e170e171e172
    e173e174e175e176
    e177e178e179e180
    e181e182e183e184
    e185e186e187e188
    e189e190e191e192
    e193e194e195e196
    e197e198e199e200
    e201e202e203e204