2010-09-03 2 views
2

Я создал простой Javascript, чтобы сделать флажок отображаемым, который скрывает флажок, и в основном просто извлекает фоновое изображение через CSS, чтобы отображать проверки/отменяет.Резиновые флажки с CSS и Javascript

Этот HTML/CSS для скрытия этого флажка доступен? Я хочу быть настолько уступчивым, насколько это возможно, и я не уверен в скрытии и моем ярлыке. В настоящее время это, как это выглядит ..

CSS:

.checked:hover, .unchecked:hover 
    { 
     background-color: #242424; 
    } 
    .checked 
    { 
     background-image: url(check.bmp); 
     color: #ffb500; 
    } 
    .unchecked 
    { 
     background-image: url(unchecked.bmp); 
    } 

HTML:

<label for="cbAll" class="checked" id="lblAll"> 
<input id="cbAll" type="checkbox" name="cbAll" checked="checked"/> 
ALL </label> 
+0

изменить свой заголовок на флажок, а не на текстовое поле – Mark

+0

Спасибо, Марк. Должно быть, расстались, ха-ха. – goodwince

+1

О, BTW, вы можете пропустить атрибуты 'for' и' id', если 'input' находится внутри' label'. – LGT

ответ

3

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

Оригинал HTML:

<input type="checkbox" id="check" /><label for="check">Toggle</label> 

Сгенерированный HTML:

<input type="checkbox" id="check" class="ui-helper-hidden-accessible" /> 
<label for="check" aria-pressed="false" class="[redacted]" role="button" aria-disabled="false"> 
    <span class="ui-button-text">Toggle</span> 
</label> 

Обратите внимание на конформацию к WAI-RIA specification, с правильным использованием атрибута role для обозначения роли, возложенной на label элемент, как кнопка (исходный элемент input скрыт и, таким образом, игнорируется программами чтения с экрана). Вы должны взглянуть на спецификации, если хотите знать, как создавать подобные вещи в доступном виде.

+0

+1 'class =" [redacted] "' Hmmm ... – BoltClock

+0

@Boltclock: пользовательский интерфейс jQuery добавляет много элементов класса, все из которых здесь неактуальны, поэтому я удалил их, чтобы сохранить небольшую полосу прокрутки , Но эй, если вы хотите 'ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only', добавленный обратно, я всегда рад обязать –

+0

@Yi Jiang: нет, я просто нашел ваше использование '[redacted]' положительно смешно: P – BoltClock

1

Посмотрите на http://lipidity.com/fancy-form/

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

+0

Так что нормально использовать ярлыки, как я делаю, и прекрасно, чтобы просто скрыть элемент ввода с экрана при работе с доступностью? Благодарим за быстрый ответ. – goodwince

+1

До тех пор, пока вы обрабатываете различные состояния, такие как: hover: focus и т. Д., Чтобы пользователи могли вводить вкладку с помощью клавиатуры или мыши и знать, какой элемент имеет фокус. – Mark