为什么在HTML中使用display隐藏文本是不好的做法?

时间:2013-09-23 05:25:10

标签: html css image hidden indentation

我最近遇到过这个教程,它使用CSS背景图片来显示网页的徽标,而不是使用HTML标记。 div中包含徽标的占位符文本,为了使文本消失,作者使用 text-indent:-9999px 而不是 display:hidden ,因为他说使用后者是不好的做法。

那么,为什么它被认为是不好的做法?

4 个答案:

答案 0 :(得分:4)

因为有时屏幕阅读器和搜索引擎会忽略display:nonevisibility:hidden的元素,但不会忽略那些位于屏幕外的搜索引擎优化和/或语音的元素。然而,无论哪种方法都是“不良做法”,都不是真正的行业协议,更多的是偏好,取决于作者对这些工具的真正了解以及他们对网站的目标是什么。

另请注意,建议至少为5年,并且事情会随着时间的推移而发生变化,因此“最佳实践”现在并不是最佳实践。

所以,找出你想要实现的目标,然后考虑你的选择,这就是我的“最佳实践”。

答案 1 :(得分:2)

主要是因为屏幕阅读器不会阅读隐藏的内容,但很多人会阅读屏幕外但仍然可见的内容。

答案 2 :(得分:2)

首先,没有任何名为display: hidden;的内容,无论是display: none;还是visibility: hidden;还是overflow: hidden;,并提出您的问题,我不喜欢使用它,而是我使用img标记,其中alt属性将描述我的图片,是的,屏幕阅读器请阅读ALT TEXT,如果您的alt上没有img {1}}标记,它会忽略它..

例如,如果我使用img作为我的徽标,那么我将使用类似

的内容
<img src="#" alt="Company Name Logo" title="Company Name" />

答案 3 :(得分:2)

使用背景图像作为徽标意味着您可以将徽标文本放在同一元素中。

这样做的一个原因是,当无法看到徽标时,可访问性读者(对于视障者)将阅读徽标文本。但是,您不希望文本覆盖徽标,因此您可以使用文本缩进来隐藏它。

显示内容:未读取任何元素。

我不是百分百肯定这个,但我还记得读过一些搜索引擎忽略隐藏元素中的内容。但是,他们可能会对缩进内容进行索引,但这需要验证。