隐藏具有负边际的元素

时间:2011-11-22 17:46:57

标签: css

我已经阅读过(实际上在这里,但目前找不到帖子)关于隐藏具有负边距的元素的方法。

我记得,答案包含了对为什么要这样做的深刻解释,以及相对于其他方法的好处(visibility: hidden; position: absolute;display: none)。是的,该方法提供了一种从文档流中删除元素的方法(可能是hackish,无效)。

我一直梦想着这个还是有这样的方式?如果有,那么是的,我会喜欢这个小小的深入解释。

提前致谢!

3 个答案:

答案 0 :(得分:4)

您是尝试隐藏块级元素(如div),还是仅隐藏具有背景图像的链接上的文本。如果它是第二个项目,那么您要查找的CSS是文本缩进。我过去曾经用过它:

a.button {
  /* .button is a for instance class name */
  text-indent: -9999px
}

这将在文档流程中保留块级元素(标记)和您放置在其上的任何背景,但会将文本移出屏幕。这是我过去使用的一种技术,但要注意你隐藏的文本 - 搜索引擎将此视为一种准黑帽技术。只需确保隐藏文字看起来不像关键字填充或明显的垃圾邮件条款,你就可以了。

希望这有帮助。

答案 1 :(得分:2)

使用负边距通常被认为是隐藏元素的更“可访问”的方式。绝对定位或浮动将从文档流中删除它。

本文总结了几种图像替换技术。

http://www.mezzoblue.com/tests/revised-image-replacement/

HTH!

答案 2 :(得分:2)

要么你一直在做梦,要么你已成为货物编码的受害者。负边距过大的明显缺点是您依赖于最大窗口大小。 (过多的负面text-indent也有这个问题和其他问题。)任何更大的东西,元素再次变得可见。除此之外,它没有指明如何处理这种程度的负边距。

只有使用display: none,您才能可靠地删除元素(就好像它不存在一样)。绝对定位会使一个元素脱离正常流动,这与移除它不同。