我已经阅读过(实际上在这里,但目前找不到帖子)关于隐藏具有负边距的元素的方法。
我记得,答案包含了对为什么要这样做的深刻解释,以及相对于其他方法的好处(visibility: hidden; position: absolute;
,display: none
)。是的,该方法提供了一种从文档流中删除元素的方法(可能是hackish,无效)。
我一直梦想着这个还是有这样的方式?如果有,那么是的,我会喜欢这个小小的深入解释。
提前致谢!
答案 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
,您才能可靠地删除元素(就好像它不存在一样)。绝对定位会使一个元素脱离正常流动,这与移除它不同。