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