2010-01-03 108 views
1

我在顯示中遇到問題:內聯和顯示:內聯塊.......我應該如何在CSS中定義...即顯示:內聯for即與顯示:inline-block的爲FF和鉻....顯示問題:內聯和顯示:內嵌塊

+1

另見http://blog.mozilla.com/webdev/2009/02/20/cross-browser- inline-block/on如何在IE 6和7中使用'display:inline-block'工作。 –

回答

3

您可以使用Conditional Comments加載只有Internet Explorer加載的覆蓋CSS文件。例如:

<!-- main stylesheet for all browsers (uses display: inline-block) --> 
<link href="main.css" media="screen" rel="stylesheet" type="text/css" /> 

<!-- overrides for IE 7 and earlier (uses display: inline where necessary) --> 
<!--[if lte IE 7]> 
    <link href="main-ie.css" media="screen" rel="stylesheet" type="text/css" /> 
<![endif]--> 

<!-- overrides for IE 6 and earlier (uses display: inline where necessary) --> 
<!--[if lte IE 6]> 
    <link href="main-ie6.css" media="screen" rel="stylesheet" type="text/css" /> 
<![endif]--> 
+0

如果我在同一個css文件中同時添加display:inline和display:inline-block,將會發生什麼... –

+1

if您將值應用於元素的顯示屬性,後者將覆蓋前者。如果你不想使用幾個CSS文件,請嘗試使用其中一個CSS黑客 –

0

IE的問題在於它沒有正確支持「內嵌塊」。因此,爲了彌補這一點,你必須浮動元素。因此,必須清除浮動元素的容器,使用「clear:both」,除非所有內容都是固定大小,例如菜單鏈接。

我更喜歡搞清楚每個瀏覽器不支持的內容,而不是爲每個瀏覽器寫單獨的樣式表。

1

IE7及以下版本不支持內聯塊。但是有一個簡單的解決方法。作爲一個內聯塊 - 簡單地說 - 一個行爲像一個塊但是內聯對齊的元素,你只需要告訴IE它是一個帶有佈局(IE idiossincracy)的內聯元素。所以:

.el { display:inline-block; *display:inline; *zoom:1; } 

你有它!真的很簡單。你也可以使用有條件的評論,並避免明星黑客入侵。我個人使用保羅愛爾蘭的HTML聲明(http://paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/),然後我專門針對IE7及以下使用:

.el { display:inline-block; } 
.lt-ie8 .el { display:inline; zoom:1; }