我相信您最好的选择是使用 Gilder/Levin 图像替换技术 - 文本保留但被图形覆盖。
谷歌似乎可以接受此链接中的讨论,只要它本质上不是欺骗性的。(并且只要您的图形与文字说明的内容相同,您就不会具有欺骗性)
http://mezzoblue.com/archives/2008/05/05/image_replac/
Mezzoblue 站点还对所有流行的图像替换技术进行了很好的总结。
这是Gilder/Levin 技术(直接从 Mezzoblue 站点复制) - 您在替换图像所在的位置添加一个空的 span 标签,并使用绝对定位将其堆叠在原始文本的顶部。现在,可能额外的 span 标签不符合您的“干净”要求,但在我看来,任何其他隐藏或删除真实文本的技术都更糟糕。
对于不能使用字体的访问者来说,最干净的解决方案可能是稍微降低体验?如果设置正确,您应该能够使用 at-font-face 吸引 99%(ish)的访问者。
<h3 id="header">
<span></span>Revised Image Replacement
</h3>
/* css */
#header {
width: 329px;
height: 25px;
position: relative;
}
#header span {
background: url(sample-opaque.gif) no-repeat;
position: absolute;
width: 100%;
height: 100%;
}
** 更新 **
Gilder/Levin 的一个缺点是替换图像必须是不透明的。如果它是透明的,则原始文本可能会根据图形的外观显示。
Leahy/Langridge 方法适用于透明图像(Apple将这种技术用于他们的导航菜单)——我知道的唯一缺点是,如果有人在关闭图像并打开 css 的情况下浏览,他们可能看不到任何内容。
再次,来自 Mezzoblue 网站
<h3 id="header">
Revised Image Replacement
</h3>
/* css */
#header {
padding: 25px 0 0 0;
overflow: hidden;
background-image: url(sample-opaque.gif);
background-repeat: no-repeat;
height: 0px !important;
height /**/:25px;
}
如果“css-on, images-off”场景失败的另一种选择是不可接受的 -单像素图像替换。该技术可以在
mezzoblue.com/tests/revised-image-replacement/中找到,
并且如另一个响应
css-tricks.com/css-image-replacement/中所述
(抱歉,链接不完整 - 我目前只允许 1 个链接每个帖子。在前面的每个 URL 的前面添加 www 以查看各种图像替换技术)