HTML5有一个新的全局属性hidden
,可以用来隐藏内容.
<article hidden>
<h2>Article #1</h2>
<p>Lorem ipsum ...</p>
</article>
CSS有display:none
规则,也可以用来隐藏内容.
article { display:none; }
从视觉上看,它们是相同的.语义上的区别是什么?计算?
我应该考虑在何时使用其中一种或另一种时应考虑哪些准则?
蒂娅.
EDIT:根据@newtron的回复(如下),我做了更多的搜索.hidden
属性在go 年引起了激烈的争论,而且(显然)几乎没有进入HTML5规范.一些人认为它是多余的,没有任何意义.据我所知,最终的判断是:如果我只针对网络浏览器,没有区别.(有一个页面甚至断言web浏览器使用display:none
来实现隐藏属性.)但如果我在考虑可访问性(例如,也许我希望我的内容能被屏幕阅读器阅读),那就有区别了.CSS规则display:none
可能会对web浏览器隐藏我的内容,但相应的aria规则(例如aria-hidden="false"
)可能会try 读取它.因此,我现在同意@newtron的答案是正确的,尽管可能(可以说)没有我想的那么清楚.谢谢@newtron的帮助.