HTML5具有新的全局属性,hidden
可用于隐藏内容。
<article hidden>
<h2>Article #1</h2>
<p>Lorem ipsum ...</p>
</article>
CSS具有display:none
规则,也可以用来隐藏内容。
article { display:none; }
在视觉上,它们是相同的。在语义上有什么区别?计算上?
在何时使用一种或另一种时,我应该考虑哪些准则?
TIA。
编辑:根据@newtron的响应(如下),我进行了更多搜索。该hidden
属性去年受到激烈争论,并且(显然)几乎没有使其成为HTML5规范。有人认为这是多余的,没有目的。据我所知,最终的评估结果是:如果我仅针对Web浏览器,则没有区别。(甚至有一个页面断言,Web浏览器曾经display:none
用于实现hidden属性。)但是,如果我正在考虑可访问性(例如,也许我希望屏幕阅读器可以读取我的内容),则存在区别。CSS规则display:none
可能会在网络浏览器中隐藏我的内容,但会使用相应的aria规则(例如,aria-hidden="false"
)可能会尝试阅读它。因此,我现在同意@newtron的答案是正确的,尽管可能(可以说)不像我想的那么清晰。感谢@newtron的帮助。
hidden
属性是否存在,但是肯定有个好问题,因为它似乎违反了结构/表示分离。