HTML - Почему атрибуты boolean не имеют логического значения?
Я заметил, что некоторые элементы имеют атрибуты, которые являются логическими. Интересно, почему значения не верны или ложны? или 1 и 0? Есть ли причина, почему они такие?
<option selected="selected">Ham Burger</option>
или
<input type="button" disabled="disabled" />
Спасибо заранее!
Ответы
Ответ 1
В SGML атрибут может быть сведен к минимуму, поэтому только его значение является коротким как для имени, так и для значения, при этом единственным возможным значением для атрибута в этом случае является, соответственно, собственное имя атрибута. HTML использует это для логических атрибутов, где наличие или отсутствие атрибута является значимым, а его значение не имеет значения. Но в XML минимизированные атрибуты были запрещены, поэтому мы оказались с неловкостью selected="selected"
, когда XHTML вошел в моду. Если вы пишете HTML, а не XHTML, вы можете просто написать selected
.
Ответ 2
точное определение:
Некоторые атрибуты играют роль логических переменных (например, выбранных атрибут для элемента OPTION). Их внешний вид в стартовом теге элемента означает, что значение атрибута "истинно". Их Отсутствие подразумевает значение "false".
также:
Логические атрибуты могут юридически принимать одно значение: имя самого атрибута [...] В HTML, в свернутом виде отображаются логические атрибуты могут
>
В принципе, это означает, что существует только два возможных состояния для логических атрибутов: true и false, но статус не установлен.
Ответ 3
Для отключенного атрибута я считаю наличие атрибута, который отключает элемент независимо от его значения.
Угадайте, одна из причин может заключаться в том, чтобы позволить больше значений, чем просто да/нет в будущем. Например, вместо visible = true/false вы можете иметь видимость = visible/hidden/collapsed
Ответ 4
стандарт HTML (не XHTML) должен быть просто выбран вместо выбранного = "selected"
Смотрите здесь: http://www.w3.org/TR/html4/interact/forms.html#adef-selected
Когда XHTML был создан, чтобы обеспечить лучшую интеграцию с XML в HTML, (см. http://www.w3.org/MarkUp/2004/xhtml-faq#need), части, которые не соответствуют исправлены требования к HTML-структуре HTML. Таким образом, формулировки, подобные выбранным, трансформировались в selected = "selected", чтобы соответствовать стандартным
Ответ 5
Считываемость, многие HTML не кодируются людьми с фоном компьютерных наук, поэтому понятие "булевское" было бы чуждо им в этих терминах. Также он улучшает читаемость для Computer Science и других технических пользователей, предоставляя усиленные подсказки относительно функции данного заявления.
Ответ 6
Как сказал vc74, не имеет значения, какое значение у вас есть для выбранного или отключенного.
<option selected="selected">Ham Burger</option>
будет делать то же самое, что и
<option selected="sjkhdaskj">Ham Burger</option>
Ответ 7
Я думаю, это просто для удобства для пользователя, чтобы указать значение атрибута в большинстве читаемых человеком формах, если он/она не знает, что истинно/ложно
<html>
<body>
<select>
<option>1</option>
<option selected="blah">2</option>
<option >3</option>
</select>
</body>
вы видите в приведенном выше коде, я не использовал selected=selected
, я использовал то, что я хочу, чтобы он по-прежнему выбирал значение параметра, или просто можно использовать <option selected>2<option>
.