簡體   English   中英

PNG圖片出現在IE8中,消失在IE7中

[英]PNG image appears in IE8, disappears in IE7

我試圖在我的網頁(XHTML 1.0 Transitional)上顯示徽標(在Paint.NET中創建的PNG),如下所示:

<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。

如果將圖像直接拖放到IE7中,是否可以正確顯示?

如果是這樣,那么問題就不在於圖像,而在於您的HTML或CSS。

我這里沒有IE7,因此無法直接測試,但是我可以推薦一種簡單的故障排除方法:

  • 逐步刪除CSS樣式,直到圖像在所有目標瀏覽器中呈現。 這應該告訴你是什么原因造成的問題(有希望的理由那么為什么會比較容易捉摸)

HTML或XHTML? 不要認為自動關閉的img標簽在HTML中有效。

編輯:您還缺少alt屬性。

如果是float:right弄亂了提示,則應嘗試清除浮動。 嘗試設置overflow:hidden; 在.header類上,或者在標記中緊隨其后的元素上都應用clear:both。

另外img標簽始終需要alt屬性-您可以將其保留為空-alt =“”

我在使用帶有src = data字符串的IMG標簽的MVC.NET應用程序中遇到此問題。

歸根結底,我不在乎是什么原因造成的,因為它是60000張圖像中的1張(並且僅在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瀏覽器中的代碼段在運行此代碼之前檢查它是否是IE。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM