Css 为什么facebook使用左边距:-9999px来隐藏元素?

Css 为什么facebook使用左边距:-9999px来隐藏元素?,css,Css,我在Facebook的流媒体上玩firebug,我注意到“更新选项”菜单的样式上有一些有趣的东西(当你将鼠标悬停在上面时,向下箭头按钮会出现在更新的右上角)。在我看来,他们通过设置左边距:-9999px来隐藏此菜单,并通过使用左边距:auto覆盖此菜单来显示它们。我想不出一个理由来代替展示:没有。这样做有什么原因吗?这是一个可访问性问题。显示文本:无也不会显示在屏幕阅读器上。你可以在上阅读。因为我不是Facebook,我只能推测,但这可能是一种避免可访问性问题的方法,使用display:none

我在Facebook的流媒体上玩firebug,我注意到“更新选项”菜单的样式上有一些有趣的东西(当你将鼠标悬停在上面时,向下箭头按钮会出现在更新的右上角)。在我看来,他们通过设置左边距:-9999px来隐藏此菜单,并通过使用左边距:auto覆盖此菜单来显示它们。我想不出一个理由来代替展示:没有。这样做有什么原因吗?

这是一个可访问性问题。显示文本:无也不会显示在屏幕阅读器上。你可以在上阅读。

因为我不是Facebook,我只能推测,但这可能是一种避免可访问性问题的方法,使用
display:none
,这会让屏幕阅读器假装它甚至不在DOM中。不应该使用@media吗?是的,应该。但我不知道有哪种屏幕阅读器会自带HTML呈现引擎,或者以其他方式尊重媒体类型。据我所知,他们做的正是它所说的:屏幕阅读。因此,您也将受制于浏览器。与文本缩进:-9999px相比,这种方法(左边距)有什么好处吗?我能想到的唯一一件事就是在有标签的地方隐藏全文段落。