2009-02-16 18 views

回答

7

這是一個衆所周知的IE6錯誤,試圖將div完全放在選擇的控件上。

有解決iframe墊片的方法,但沒有好的答案。 iframe填充答案是將iframe放置在您要放置在select之上的任何div下方,iframe的大小相同。不幸的是,這是一個巨大的痛苦。

我建議使用已經使用iframe填充程序的javascript菜單系統,如YUI menus(我假設jQuery)。

2

問題是,SELECT是IE6中的「窗口化」元素,它們的z-index高於所有其他非「窗口化」組件。如果你絕對必須在combox上有某些東西,你可能想把它放在另一個窗口元素(如IFRAME)中,並將該元素的z-index設置爲高於組合框的z-index。我不得不承認,這不是一個漂亮的解決方案。

7

大多數主要的JavaScript庫都可以很容易地解決這個問題。我們使用jQuery,並且bgiframe plugin非常易於使用並解決了這個問題。

+1

@jonstjohn - 太棒了!這工作得很好 - 使用bgiframe插件的唯一剩餘問題是我所得到的DIV的邊框仍然被下拉覆蓋。所以DIV的主要部分顯示在下拉菜單的頂部,但黑色邊框(CSS - border:2 px solid #cecece;)仍然出現在下拉菜單下方。你有沒有碰到過這個? – 2010-01-26 17:02:55

3

Daniel絕對是對的。這是一個醜陋的問題。

但是,可能有另一種解決方案。如果您使用彈出式打開和關閉的多層菜單,可以編寫JavaScript代碼,在打開彈出窗口時隱藏有問題的SELECT元素(將元素設置爲隱藏可見性)。然後,當菜單關閉時,您可以取消隱藏相同的SELECT控件。

然後,您只需編寫代碼來檢測在打開特定菜單之前哪些SELECT對象獲得了。這不是微不足道的代碼,但它絕對可以寫。然後,我只是將整個代碼塊包裝在一個條件中,檢查用戶是否在IE上,因爲不需要在Firefox或Safari上運行該代碼。