Пользовательское радио и флажок с использованием CSS - PullRequest
3 голосов
/ 20 июня 2011

есть ли способ стилизации переключателя и флажка с использованием пользовательских изображений.используя только CSS?

Может ли кто-нибудь указать мне, как это можно сделать?

Иначе, какие плагины являются лучшими для jquery?

Ответы [ 5 ]

4 голосов
/ 20 июня 2011
3 голосов
/ 15 ноября 2013

Вы можете сделать это с чистым css3, используя псевдокласс :checked. Вдохновленный этой статьей , я получил следующее решение:

Особенности:

  • только CSS
  • нет id атрибут необходим
  • Z-индекс не требуется

Попробуйте это на jsfiddle: http://jsfiddle.net/tlindig/n6by8/6/

HTML:

<label>
    <input type="radio" name="rg"/><i></i>
    option 1
</label>
<label>
    <input type="radio" checked name="rg"/><i></i>
    option 2
</label>
<label>
    <input type="radio" name="rg"/><i></i>
    option 3
</label>

CSS:

input[type="radio"] {
    display:none;
}
input[type="radio"] + i:before {
    content:'\2718';
    color:red;
}
input[type="radio"]:checked + i:before {
    content:'\2713';
    color:green;
}

Некоторые объяснения:

Элемент i необходим для добавления псевдоэлемента :before со значком в качестве содержимого. Элементы input являются пустыми тегами и не могут иметь псевдоэлементов, таких как :before и :after, поэтому нам нужен дополнительный элемент. Вы также можете использовать span или div, но i короче.

label необходим для запуска input. Если вы оберните input элементом label, вам не понадобятся атрибуты id и for для связи.

'\ 2718' и '\ 2713' - это коды символов UTF8 для "голосования X" и "галочки".

Вместо content вы также можете установить background-image или что угодно.

Работает во всех современных браузерах и ie9 +.

3 голосов
/ 20 июня 2011

Пользовательский интерфейс jQuery имеет несколько превосходных и легко реализуемых опций:

http://jqueryui.com/demos/button/#checkbox

1 голос
/ 26 июля 2014

Оформление заказа WTF, формы от создателя Bootstrap Mark otto . У этого есть хорошие стили для флажка и радио.

1 голос
/ 20 июня 2011

Не уверен, что вы сможете сделать это с чистым CSS, но этот способ отлично подходит для JavaScript:

http://ryanfait.com/resources/custom-checkboxes-and-radio-buttons/

...