其他都表示,這是IE7及以下
但這一個黑客,你給出的例子是一個特定的黑客一點都不像你收到我不建議刪除評論它還沒有..你可以移動它或刪除它後,你讀了這個,不需要它;)
btw我同意-moz-inline-box可能不再需要,它是爲舊版本的Firefox
selector {
display: -moz-inline-box;
display: inline-block;
zoom: 1;
*display: inline;
}
是一個具體的h ack讓IE6/7顯示塊級元素作爲行內塊。雖然自V5.5 IE一直支持inline-block
它並沒有在這種情況下,你需要做的就是給元素「佈局」是什麼(zoom: 1;
)這樣做本身對塊級元素
所以,之後餵它display: inline
。
現在display:inline-block
也給出了一個元素的佈局,所以如果你刪除display-inline
規則到一個單獨的規則集(無論是在條件或砍死規則),您不再需要使用zoom: 1;
我首選的破解這個(爲演示)&因爲直列塊這樣破滅有用,&,因爲它是短是
selector {
display: inline-block;
}
selector {
display: inline !ie7;
}
是!ie7
,在顯示屬性之前做的一樣*
,我t將該規則提供給IE7及其以下版本 - 您也可以在第二條規則中使用*
版本,但是!ie7明確表示,無論如何,這是一個黑客攻擊,以及它的用途。
如果您對IE7和下面你一個具體的,有條件的樣式表可以簡單地把第二條規則在它 - 沒有任何*
或ie7
;)
selector {
display: inline;
}
,因爲IE瀏覽器仍然會讀取第一規則集和得到它的hasLayout的在那裏觸發true
由inline-block
,你不需要zoom
你提到的黑客報價很受歡迎,因爲它使所有的部件在一個規則集,但需要在這種情況下,作爲將無法設置hasLayout如果它在與另一display
屬性相同的規則集
我懷疑-moz-inline-box是必要的,Gecko現在支持inline-block。 zoom:1也可能不必要,如display:inline-block;完成相同的任務。對於只有普通*無顯示的IE6:內聯;最後會優先考慮,對於其他IE,你可以在之後的另一個規則中使用*,但它的工作原理是一樣的。 (基本上,這篇博文總是有愚蠢的代碼,而且現在只比這更愚蠢。) – reisio 2011-04-13 19:48:25