2012-02-22 25 views
3

我正在玩臉書的流中的螢火蟲,我注意到「更新選項」菜單(當您將鼠標懸停在它上面時出現在更新右上角的向下箭頭按鈕)的風格有趣。在我看來,他們通過設置margin-left:-9999px來隱藏該菜單,並通過用margin-left:auto覆蓋此菜單來顯示它們。我不能想到這樣做的原因,而不是顯示:無。這樣做有什麼理由嗎?爲什麼Facebook使用margin-left:-9999px來隱藏元素?

+0

因爲我不是Facebook,我只能推測,但它可能是一種避免使用'display:none'來避免可訪問性問題的方法,它使得屏幕閱讀器假裝它甚至不在DOM中。 – Rodaine 2012-02-22 18:45:10

回答

5

這是一個無障礙的東西。文本與顯示:無也不顯示在屏幕閱讀器上。你可以在CSS in Action: Invisible Content Just for Screen Reader Users上閱讀。

+0

不應該用@media代替嗎? – Thiago 2012-02-22 19:29:09

+0

是的。但我不知道一個屏幕閱讀器會帶來自己的HTML渲染引擎或以任何其他方式來尊重媒體類型。從我所知道的他們完全按照它的說法來看:屏幕閱讀。所以你也受到瀏覽器的支配。 – Daff 2012-02-22 19:43:28

+0

這種方法(margin-left)與text-indent相比有什麼好處:-9999px?我能想到的唯一的辦法是隱藏整段文字,其中有
標籤存在。 – 2012-04-17 21:14:10