2014-02-27 124 views
0

我有以下HTML:爲什麼IE10顯示風格不同於其他瀏覽器

<td class="tdGo" style="background-color: #0000FF;"> 
    <img src="theImages/search_go.png" id="imgGo" class="imgGo" /> 
</td> 

CSS:

td.tdGo { 
    padding-right: 24px; 
    text-align: right; 
} 
.imgGo { 
    cursor: pointer; 
} 

JQuery的:

$('.imgGo').each(function() { 
    var std = $(this).attr("src"); 
    var hover = std.replace("theImages/search_go.png", "theImages/search_go_rollover.png"); 
    $(this) 
     .clone() 
     .insertAfter(this) 
     .attr('src',hover) 
     .removeClass('imgGo') 
     .siblings() 
     .css({position:'absolute'}); 
    $(this) 
     .mouseenter(function() { 
      $(this).stop().fadeTo(250, 0); 
     }) 
     .mouseleave(function() { 
      $(this).stop().fadeTo(250, 1); 
     }); 
}); 

IE10:

enter image description here

IE8:

enter image description here

FF /鉻:

enter image description here

出於某種原因,在IE10中的圖像出現在兩個不同的地方,我似乎無法找出原因。任何幫助表示讚賞。

這就是DEV工具被示出:

enter image description here

+0

你在瀏覽器工具中檢查過呈現的CSS嗎? –

+0

我用開發工具截圖更新了我的問題。 – SearchForKnowledge

+0

這是一個非常時髦的方式做翻車。這個問題必須由你使用clone()引起。 – nullability

回答

1

IE10是唯一一個此正確呈現:與position:absolute元素是從流動的,因此當確定不向text-align:right響應它的位置。

考慮使用這個CSS:

td.tdGo { 
    text-align:right; 
    padding-right:24px; 
    position:relative; 
} 
.imgGoRollover { 
    position:absolute; 
    right:24px; 
} 

此外,要知道,你的jQuery是創建具有重複的ID元素 - 確保你從克隆的元素中刪除ID屬性。

+1

我不會說其他瀏覽器是錯誤的o_0,因爲它不完全尊重文本對齊方式,但更像是它記住了之前的位置,並預設了「top '和'left'值而不是僅僅是0.不是說這是做這件事的正確方法,但是通過手動指定位置來修復是很簡單的(無論如何,你應該這樣做,假設某些東西的默認值在第一個地方) – Populus

+0

我使用':after'來確保轉換正常工作。 – SearchForKnowledge

相關問題