HTML5 имеет новый глобальный атрибут, hidden
который можно использовать для скрытия содержимого.
<article hidden>
<h2>Article #1</h2>
<p>Lorem ipsum ...</p>
</article>
В CSS есть display:none
правило, которое также можно использовать для скрытия содержимого.
article { display:none; }
Визуально они идентичны. В чем разница семантически? Вычислительно?
Какие рекомендации мне следует учитывать при использовании того или другого?
TIA.
РЕДАКТИРОВАТЬ : Основываясь на ответах @ newtron (ниже), я больше искал. hidden
Атрибут был горячо оспаривается в прошлом году , и (видимо) едва пробился в HTML5 спецификации. Некоторые утверждали, что это было лишним и бесполезным. Насколько я могу судить, окончательная оценка такова: если я ориентируюсь только на веб-браузеры, разницы нет. (Одна страница даже утверждала, что веб-браузеры использовали display:none
для реализации скрытого атрибута.) Но если я рассматриваю вопрос о доступности (например, возможно, я ожидаю, что мой контент будет прочитан программами чтения с экрана), тогда есть разница. Правило CSS display:none
может скрывать мой контент от веб-браузеров, но соответствующее правило aria (например,aria-hidden="false"
) мог бы попытаться прочитать это. Таким образом, теперь я согласен с тем, что ответ @ newtron правильный, хотя, возможно (возможно), не так ясен, как мне хотелось бы. Спасибо @newtron за вашу помощь.
источник
hidden
атрибут существует, но, безусловно, хороший вопрос, поскольку он, похоже, нарушает разделение структуры / представления.Ответы:
Ключевое отличие состоит в том, что
hidden
элементы всегда скрыты независимо от представления:http://dev.w3.org/html5/spec/Overview.html#the-hidden-attribute
Поскольку CSS может нацеливаться на разные типы мультимедиа / презентации,
display: none
это будет зависеть от данной презентации. Например, некоторые элементы могут появитьсяdisplay: none
при просмотре в браузере настольного компьютера, но не в браузере мобильного устройства. Или быть скрытым визуально, но по-прежнему доступным для программы чтения с экрана.источник