77

我有這個CSS代碼inline-block。任何人都可以告訴我如何使它在Internet Explorer 6和7中工作。任何想法?也許我做錯了什麼?謝謝!行內塊不能在Internet Explorer 7中工作,6

#signup { 
    color:#FFF; 
    border-bottom:solid 1px #444; 
    text-transform:uppercase; 
    text-align:center; 
} 
#signup #left { 
    display: inline-block 
} 
#signup #right { 
    background-image:url(images/signup.jpg); 
    border-left: solid 1px #000; 
    border-right: solid 1px #000; 
    display: inline-block; 
    padding:1% 2% 
    width:16%; 
} 
#signup #right a { font-size:100%; font-weight:bold } 
#signup #right p { font-size:90%; font-weight:bold } 
#signup a:hover { color:#FFF; text-decoration:underline } 

回答

179

在IE6/IE7,display: inline-block僅適用於那些自然直列(如span多個)元件。

爲了使它在其他元素,比如div的工作,你需要這樣的:

#yourElement { 
    display: inline-block; 
    *display: inline; 
    zoom: 1; 
} 

*display: inline採用的是「安全」的CSS破解適用於only IE7 and lower

對於IE6/7,zoom: 1提供了hasLayout。擁有「佈局」是display: inline-block始終有效的先決條件。

可以在保留有效CSS的情況下應用此解決方法,但這並不值得考慮,特別是如果您已經使用任何供應商前綴屬性。

Read this關於display: inline-block(但忘記了-moz-inline-stack,這只是現在古老的Firefox 2所必需的)的更多信息。

+0

我讀過(但不能測試),你應該設置'_height:### px',這隻有在IE6和下面才能理解。假設你仍然在意正式死亡的瀏覽器,那就是。 – Blazemonger 2012-08-30 15:13:03

+0

有時需要顯示:inline \ 9;在IE8中工作。 – Somebody 2012-10-02 16:21:49

+1

圍繞此問題的一篇很好的文章,也涉及Firefox 2和IE5.5&6:http://blog.mozilla.org/webdev/2009/02/20/cross-browser-inline-block/ – sshow 2014-03-16 19:05:05

2

*display:inline正常工作IE7 hack。但是,您可以將zoom:1添加到代碼中作爲*background:#fff; *display:inline; zoom:1。在這裏,你可以把你的背景顏色代碼。有時候,你不會在屏幕上看到佈局,例如,列表項不會出現在屏幕上。然後,在這種情況下,這很有效,並且在其他瀏覽器中顯示。

相關問題