1

使用 :before CSS 在此处获取图像/图标(请参见下图中的圆形圆圈),但在 Internet Explorer 8+ 中它只是没有显示。

这是网站: http ://www.websiteprofessioneel.nl

下面的图片链接显示了在此屏幕转储 http://tinypic.com/view.php?pic=xxd9f&s=5#.Ul_WajZRoWY上圈出的正确元素(它是第一个帖子标题中的图标)

这是为此的CSS:

.welpen h2:before {
    content: url("/wp-content/uploads/z-welpen-category-small.png") !important;
}

也许有什么遗漏?所有其他浏览器都可以正常工作,据我所知,至少在 IE9 中完全支持 peudo CSS,但它在 IE8、9 及更高版本中均不工作。

4

2 回答 2

3

IE 可能正在使用Quirks 模式

Internet Explorer 可以在怪癖或标准模式下运行。quirks 模式的目的是使符合新标准的 IE (8+) 能够读取和处理人们之前为 IE7- 编写的代码。

可能的原因 #1:无效或不存在 DOCTYPE 声明

尝试在 HTML 文档的第一行指定这个:

<!DOCTYPE html>

确保<html>元素存在。尽管 HTML5 规范说不需要,但较旧的 IE(10 及以上)在未指定时往往会进入怪癖模式。

可能的原因 #2:网站未通过 (X)HTML 验证

如果存在这种情况,请确保 W3C 验证器不会抛出任何错误,因为这些错误也会触发 IE 中的 Quirks Mode。你的有 15 个

实际原因更不可能:故意触发怪癖模式

经过评论讨论,事实证明我对怪癖模式的看法是正确的,但原因却是错误的。确保您没有任何元标记告诉 IE 以怪癖模式运行,例如:

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
于 2013-10-17T12:52:02.593 回答
3

问题是因为 doctype 有问题,<!DOCTYPE html>用于 html5 并使其适用于 ie8 使用

<!--[if IE]>
  <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->

如果你不想要 html5 然后使用

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  

这将解决我认为的问题

于 2013-10-17T12:54:48.030 回答