2010-09-20 37 views
8

如何修復IE6上的display:inline-block;如何修復顯示:在IE6上的內聯塊?

我的HTML頁面http://www.faressoft.org/tutorialTools/slideShow/

我可以在其他的方式同樣的結果?

alt text

+0

您已將您的CSS文件保存爲UTF-8 BOM,並且您在內容類型標題中沒有字符集的情況下提供它們。我建議修復它。我不確定在第一個CSS規則之前,IE6會如何對存在不正確編碼的UTF-8 BOM做出反應。 – BalusC 2010-09-20 19:04:28

回答

12

您必須在IE樣式表中的塊級元素上重新指定display:inline;

HTML:

<div class="ImageSlideShow">blah</div> 

REGULAR CSS:

.ImageSlideShow { display:inline-block; } 

IE CSS:

<!--[if lt IE 8]> 
<style> 
.ImageSlideShow { display:inline; zoom:1; } 
</style> 
<![endif]--> 

參見:http://work.arounds.org/using-inline-block-ie7-and-ie6/

獎金:

您還應該指定display:inline;代替.ImageSlideShow .ImageNum {}以減輕另一個IE錯誤。

+4

我知道這是超級老,但對於其他人來到這裏(像我自己),你不需要有條件的評論。所有你需要的是.ImageSlideShow {display:inline-block; *顯示:內聯;縮放:1;}它會工作得很好。 IE6和7是唯一識別*顯示的瀏覽器,所有其他瀏覽器都會忽略它。 – 2012-06-04 19:07:58

+0

雖然使用condcoms可以說更加優雅,但是爲了簡潔,如果您不關心完美的驗證,請繼續。 – 2012-06-04 19:22:37

+0

這取決於如果您認爲在您的結構中添加額外的標記與在CSS中添加兩個屬性(設計元素應該存在的位置)相比更加簡潔和語義化。但是,您說得對,您可以根據你在這方面的位置。 – 2012-06-05 03:09:33

4

http://blog.mozilla.com/webdev/2009/02/20/cross-browser-inline-block/

在IE6中您可以設置顯示:內聯博克才真正的內聯元素像跨度或。

+0

任何人都可以解釋爲什麼我的答案被拒絕嗎?在這裏看不到任何錯過信息。 IE 6/7接受顯示:僅在具有自然顯示的元素上行內嵌塊值:內聯。在此處驗證http://www.quirksmode.org/css/display.html – gearsdigital 2010-09-21 08:37:08

+0

閱讀所選答案。 – 2010-09-21 16:34:27

+0

解決了我的問題,謝謝。 – 2012-10-17 10:00:19

5
* html p { display: inline; zoom: 1; }