2009-07-09 45 views
1

我在頁面上有幾個相同類型的元素,我試圖讓它們都是相同的高度,即使內容略有不同。我已經把一個小功能是產生在兩個2+火狐和Safari結果3+,但顯然沒有,即使在IE 7註冊下面是我使用的是什麼:在IE中使用jQuery設置等高的問題

var tallestcopy = 0; 
    $(".calloutL2Copy").each(
     function(index) { 
      var tallest = $(this).height(); 
      if (tallest > tallestcopy) { 
       tallestcopy = tallest 
      } 
     }); 
    $(".calloutL2Copy").css("height",tallestcopy); 

凡類」。 calloutL2Copy「應用於包含一些文本和偶爾圖像的div。我也嘗試更換最後一行:

$(".calloutL2Copy").height(tallestcopy); 

此外,這可以在Firefox和Safari中使用,但對IE中的同一個div沒有影響。我已經驗證IE正在獲得最高像素值正確,它只是不應用於兄弟姐妹。任何人都可以提供一些建議,讓這件事情工作?

UPDATE:

下面是從那裏我試圖應用該技術的網站代碼的樣本。我沒有編寫代碼(並且知道存在嚴重的div-itis),我只是試圖修復CSS錯誤。

<div id="calloutL2Top"> 
<div class="calloutL2"> 
    <a href="#"><img class="calloutL2Img" alt="" src="something.jpg" width="217" height="81"></a> 
    <div class="calloutL2Copy"> 
     <h3>Lorem Ipsum</h3> 
     Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. 
    </div> 
</div> 

<div class="calloutL2"> 
    <a href="#"><img class="calloutL2Img" alt="" src="something.jpg" width="217" height="81"></a> 
    <div class="calloutL2Copy"> 
     <h3>Lorem Ipsum</h3> 
     Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. 
    </div> 
</div></div> 

再次更新:

我從更高的力量繼續前進,我要發佈網站的IP直接做在問題頁面,以便您可以查看第一手是什麼問題:

[URL刪除]

我試圖修復是該系列的沿主要內容區域底部的箱子。希望這會更有幫助。

+0

您使用的是正確的文件類型嗎? – Fermin 2009-07-09 14:40:35

+0

元素是否爲塊級別?我認爲IE只會應用高度風格來阻擋關卡元素。 – 2009-07-09 14:42:39

+0

@Fermin是的,文檔類型設置爲HTML 4.01 Strict。 @Josh Divs默認是塊級元素,但是甚至可以明確地設置display:block;在div的CSS仍然不起作用。 – Andrew 2009-07-09 14:51:34

回答

1

我認爲你需要指定一個單元......

$(".calloutL2Copy").css("height", tallestcopy + "px"); 

編輯:

我覺得你是一個IE漏洞的受害者。爲了解決這個問題,我相信你會需要一個明確的div作爲浮動父的最後一個子......

<div style="clear:both; font-size:1px; height:1px">&nbsp;</div> 

編輯2:

查看您的網站的源。第一行需要是DOCTYPE,並且你有一個奇怪的角色。那跟那個?

1

你試過

$(".calloutL2Copy").children().css("height",tallestcopy); 

這應該在CSS樣式應用到所有.calloutL2Copy的第一級子。

此外,你的HTML究竟是如何嵌套的?您可以嘗試的另一件事是在腳本運行時螢火蟲Firefox,並確切知道您的價值。這可能有助於你理解IE爲什麼不起作用。 (如果你有IE8,它有開發者工具,你也可以在腳本之後看看你的HTML,看看到底是什麼得到了CSS和什麼沒有)。

0

我用HTML 4做了一個測試頁面。01嚴格的DOCTYPE和您在問題中提供的確切代碼,並且它對我來說在IE 6,7和8中按預期工作。可能是CSS中的預設高度或最小/最大高度被繼承並導致衝突,或者在頁面上的其他JavaScript中對高度進行了其他操作?

http://www.lifford.org/exp/testcase/stackoverflow_IEheights.html