2010-02-01 57 views
2

我试图在我的网页上显示的标志(在Paint.NET创建PNG)(XHTML 1.0过渡),像这样:PNG图像出现在IE8,消失在IE7

<body> 
    <div class="header"> 
    <div class="logo"> 
     <img src="logo.png" /> 
    </div> 
    <!-- etc. --> 

.header是风格如下:

.header { 
    background-color: Black; 
    color: White; 
    margin-left: -3em; 
    padding-top: 12px; 
    padding-left: 2em; 
    padding-bottom: 12px; 
    font-size: 1.4em; 
} 

.header .logo { 
    float: right; 
} 

该徽标是白色的黑色,其他颜色。

在IE8(和Google Chrome)上,图像显示正确。在IE7上,图像根本不显示。我究竟做错了什么?

我不在乎IE6。

+4

运行使用片断此代码之前的IE'我不关心IE6' ......我嫉妒 – SLaks 2010-02-01 14:15:49

+0

可能要在您的代码中添加HTML和CSS。 – norlando 2010-02-01 14:25:23

+0

它似乎是“浮动:正确”,它弄乱了它;如果我删除它,那么图像就会出现。另外,如果我删除'background-color',那么图像就会出现。 – 2010-02-01 15:34:37

回答

0

如果它是浮动:正确的食堂起来perheps你应该设法清除彩车。尝试设置溢出:隐藏;在.header类上,或者应用清除:在标记中的后面的元素上。

而且img标签总是需要的alt属性 - 但是你可以让它空白 - ALT =“”

+0

'overflow:hidden'使它工作。小心解释为什么? – 2010-02-01 16:29:27

+0

通过设置th属性overflow:hidden;在容器div上,你不知何故将它包含在内部的元素中,并以某种方式清除它自己。我相信它被认为是一个CSS错误,但适用于所有浏览器。你也可以用:auto或:scroll属性来清除它,有时你也需要设置宽度(通常是100%)。 只要注意,不要使用它来清除包含下拉菜单的div,或者在内容偏离容器外的其他情况下,因为它会将其切割到边缘。 – easwee 2010-02-01 16:47:31

0

HTML or XHTML?不要以为自动关闭img-tag在HTML中是有效的。

编辑:你也缺少alt属性。

+0

XHTML 1.0 Transitional;更新的问题。 – 2010-02-01 15:26:23

+0

这是一个标志;它没有视力受损的等效物。我还需要一个alt属性吗? – 2010-02-01 15:27:24

1

如果将图像直接拖放到IE7中,它是否显示正确?

如果是这样,那么问题不在于图像,而是与您的HTML或CSS。

我没有IE7这里,所以不能直接测试,但我可以推荐一个简单的故障排除方法:

  • 删除CSS样式,一个接一个,直到图像中所有的渲染您的目标浏览器。这应该告诉你什么原因造成的问题(有希望的原因为什么然后将相对容易捉摸)
+0

查看原始问题的更新和评论。 – 2010-02-01 15:34:55

0

我在使用了SRC =数据串的IMG标签的MVC.NET应用这个问题。

在一天结束的时候,我不在乎什么导致它,因为它是1个图像出60000(只有在IE)

function showPicture() { 
     if ($('#picture').css("display") == "none") { 
      $('#picture').css("display", ""); 
      clearInterval(interval); 
     } 
    } 

    var ua = window.navigator.userAgent; 
    var msie = ua.indexOf("MSIE "); 
    if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) 
     interval = setInterval(showPicture, 500); 

虽然我认为这是奇怪的是,只有特定的记录引起Display:None属性被内联应用,我很喜欢分享这个,因为CSS Display:None不是来自我的代码。

无论如何,从理论上说,你可以检查,看它是否从check for IE browser