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
атрибут существует, но, безусловно, хороший вопрос, поскольку он, похоже, нарушает разделение структуры / представления.