我有一个图像,我将动态填充src稍后与javascript,但为了方便,我希望图像标签存在于页面加载,但只是不显示任何东西。我知道<img src= " />是无效的,那么最好的方法是什么?


当前回答

我个人使用about:blank src,通过将img元素的不透明度设置为0来处理破碎的图像图标。

其他回答

<img src="invis.gif" />

gif是一个单像素的透明gif。这在未来的浏览器版本中不会中断,并且自90年代以来一直在传统浏览器中工作。

PNG也可以工作,但在我的测试中,GIF是43字节,PNG是167字节,所以GIF赢了。

另外,不要忘记Alt标签,验证器也喜欢它们。

在我看来,这些天最好的简短,理智和有效的空img src的方式是这样的:

<img src="data:," alt>
or
<img src="data:," alt="Alternative Text">

第二个例子显示“Alternative Text”(加上Chrome和IE中的broken-image-icon)。

"data:,"是一个有效的URI。空媒体类型默认为文本/纯。所以它表示一个空文本文件,相当于“data:text/plain”,

OT:所有浏览器都能理解纯alt。你可以省略="",这在HTML规范中是隐式的。

另一种选择是嵌入一个空白图像。任何符合你的目的的图像都可以,但是下面的例子编码了一个只有26字节的GIF——来自http://probablyprogramming.com/2009/03/15/the-tiniest-gif-ever

<img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=" width="0" height="0" alt="" />

根据下面的评论编辑:

当然,您必须考虑您的浏览器支持需求。不支持IE7或更低版本是值得注意的。http://caniuse.com/datauri

正如评论中所写的,这种方法是错误的。

我没有找到这个答案之前,但根据W3规范有效的空src标签将是一个锚链接#。

示例:src="#", src="#empty"

页面验证成功,没有发出额外的请求。

根据本文,使用真正空白、有效且高度兼容的SVG:

src = " +:形象/ svg xml数据;charset = utf8, 3Csvg % 20xmlns = http://www.w3.org/2000/svg’排% 3C / svg %排”

与任何SVG一样,它的默认大小为300x150px,但是您可以在img元素的默认样式中使用它,因为在实际实现中任何情况下都可能需要它。