Мы должны поместить <вход> в <маркировке>? [дубликат]

11
задан Jitendra Vyas 24 May 2010 в 07:22
поделиться

4 ответа

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

Хорошо, еще раз: теперь поверхности управления отображаются серым цветом (если ваш CSS не отключен). Если вы хотите, чтобы элемент управления был чувствителен к щелчкам с обеих сторон элемента управления, заключите между тегами меток , если достаточно, чтобы одна сторона элемента управления была чувствительна к щелчку, поместите теги до или после <вход> . В следующем примере: первые 2 элемента управления чувствительны к щелчкам с обеих сторон (включая пробелы слева) элемента управления, третий - только для левой стороны.

Проверьте этот пример:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<title>Visual Label example</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<style>
 .control
 { 
   background-color:#ddd
 }
</style>
</head>
<body>
<form action="" method="post" name="f1">
<label class="control" for="id_1">1. 
<input checked="checked" name="check" id="id_1" value="1" type="checkbox">One
</label>
<br />
<label class="control" for="id_2">2. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input name="check" id="id_2" value="2" type="checkbox">Two
</label>
<br />
<label class="control" for="id_3">3. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label>
<input name="check" id="id_3" value="3" type="checkbox">Three
</form>
</body>
</html>
0
ответ дан 3 December 2019 в 05:11
поделиться

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

6
ответ дан 3 December 2019 в 05:11
поделиться

Это соответствует спецификации и работает во всех современных браузерах (но не в IE6 - щелчок по метке не установит фокус на элемент ввода, если вы не включите id и for):

  <label>
      Name: <input type="textbox" name="firstName" />
  </label>

Что касается "почему" - в

радиокнопки были помещены в метки, чтобы не было некликабельного промежутка между меткой и ее радиокнопкой.

12
ответ дан 3 December 2019 в 05:11
поделиться

Сегодня я нашел ответ здесь. http://www.w3.org/TR/2008/NOTE-WCAG20-TECHS-20081211/H44.html

Спецификации HTML и XHTML допускают как неявные, так и явные метки. Однако некоторые вспомогательные технологии некорректно обрабатывают неявные метки (например, Имя ). Например ).

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

4
ответ дан 3 December 2019 в 05:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: