2009-02-26 43 views
5

有一陣子,我一直在* html div { zoom: 1; }在我的基礎樣式表,它已經很好。然而,我現在遇到這樣的情況,那就是那些絕對定位的元素在IE 6 cuz中失去了高度和寬度。所以我想改爲* html div { height: 1%; },但是副作用是什麼?在IE 6中觸發haslayout,使用* html div {height:1%; }

更新:

感謝您的答覆。正如你們所說的,答案很可能沒有副作用。

我會然而與所有建議,不同意(在這個特定的時刻)如何/時觸發hasLayout的。我發現haslayout一個理想的行爲,因此應該是IE6中的默認行爲(& 7)。

它已經提到,這是不可能會有任何副作用,確切的原因,爲什麼不把它的默認行爲,當一個令人不快的行爲(如果有的話)只出現將其關閉。

可以通過在該特定元素上指定{zoom: auto;}{height:auto;}來完成此操作,具體取決於它在基本樣式表中的定義方式。

我將不得不放棄回答的第一人,上面寫着「無副作用」,因爲每個人的答案是一樣的,而有些出去的範圍。再次感謝!

+0

我一直採取了「做正確的,然後修復IE的做法」,因此將黑客的一切從來沒有發生在我身上。不過,可能是我下一個項目的一個有趣的實驗。看看它是否會殺死任何IE6漏洞。感謝您的想法! – 2009-02-28 02:54:29

回答

3

這就是所謂的The Holly Hack。據我所知,沒有副作用,特別是如果你直接在IE6上使用* html。我同意其他海報,將其放在<div>標籤上可能不是最明智的選擇 - 我會針對導致悲傷的各個元素。

1

我儘量減少使用這些類型的解決方法來避免無法預料的問題;當IE6打破布局時,我只在需要它的元素上使用它,而不是在頁面中的所有元素上。

0

1%的身高應該沒有效果,因爲IE會將尺寸視爲最小尺寸。然而,pos:abs已經足以讓haslayout無論如何,我同意jeroen這樣的總括性斷言並不明智。例如,這不是你想要的CSS重置。

1

我也不認爲有任何副作用。但如前所述 - 只能用於你需要的東西。我個人...

  1. 使用它,只有一組類:

    • HTML .haslayout {身高:1%; }
  2. 將其放置在一個IE 6樣式表經由conditional comment

    <包括! - [如果IE 6] > <鏈路HREF = 「ie6.css」 的rel = 「樣式表」 類型= 「文/ CSS」 媒體= 「屏幕投影」/ > <![ENDIF] - >

希望幫助