0

在 IE 8 中,当图像未显示时,我看到替代文本显示在打印预览中。问题未在 chrome 中发生。我想在 IE 8 中解决这个问题。

图像的 Src 在运行时添加。有时图像将无法从服务器获得

<img src="null" alt="weird issue">

需要在不使用 javascript 的情况下进行修复

4

2 回答 2

1

您不能直接设置 alt 文本的样式,但它会从img父级继承,因此可能最简单的方法是在 CSS 中将color您的设置img为白色(如果用于打印应用程序,则在您的打印样式中)。

尝试这个:

img{
    color: #fff;
    background-color: #fff;
}

在该示例中,我也将其设置background-color为白色,但这可能不是 100% 必要的,因为如果这是一种打印样式,则无论如何背景都不可避免地是白色的。

正如这个答案下面的评论中所提到的,您可以使用 CSS属性选择器来仅定位那些'null'作为其源的 imgs。

这将像这样工作:

img[src="null"]{
    color: #fff;
    background-color: #fff;
}

然而,这会带来一些额外的要求/假设:

  • src 确实是“空”,而不仅仅是一个空字符串(在这种情况下,您可以使用img[src=""])。
  • CSS 属性选择器适用于 IE7 及更高版本。但是,IE7 和 IE8 对!DOCTYPE声明有点敏感,所以你必须确保你的页面有一个有效的!DOCTYPE声明。
  • 较旧的浏览器(例如 IE6)将不支持此功能,因此您仍然可以看到 alt 文本。
  • 假设 CSS 分辨率实际上是您所要求的,并且 - 和以前一样 - 图像所在的背景确实是白色的!

src="null"您可以扩展属性选择器的使用,以确保根本不显示那些通过的图像:

img[src="null"]{
    display: none;
}
于 2013-06-05T14:30:30.640 回答
1

对于 mozilla :研究此代码并找到一种方法来使用其他浏览器实现它。

img:-moz-broken:before,
input:-moz-broken:before,
img:-moz-user-disabled:before,
input:-moz-user-disabled:before,
img:-moz-loading:before,
input:-moz-loading:before,
applet:-moz-empty-except-children-with-localname(param):-moz-broken:before,
applet:-moz-empty-except-children-with-localname(param):-moz-user-disabled:before {
    content: -moz-alt-content !important;
    unicode-bidi: -moz-isolate;
}

或者,一些绝对基本的内联 javascript,一些非常丑陋的老式内联事件处理程序:

<img src="broken.png" onerror="this.style.display='none'" />
于 2013-06-05T15:10:32.880 回答