Er versteht
display:inline-block;
zwar nicht, nimmt es aber zum Anlaß, hasLayout auf true zu setzen. Bei Inline-Elementen bist Du damit schon am Ziel, denn Inline-Elemente mit hasLayout verhalten sich fast genau so wie die Inline-Block-Elemente laut Standard (v.a. akzeptieren sie width- und height-Angaben).
Das tun sie auch ohne display:inline-block, width und height triggern selbst schon hasLayout.
Block-Elemente setzt Du einfach danach mit dem Star-HTML-Hack (oder im Extra-IE6-Stylesheet) auf
display:inline;
, wobei hasLayout komischerweise nicht auf false zurückgesetzt wird*.
Wieso komischerweise?
Wenn width oder height bleiben, bleibt auch hasLayout.
Der Browser, der tatsächlich aussteigt, ist Firefox 2 - für den kenne ich auch keinen passenden Hack.
Doch, das geht:
display: -moz-inline-stack; /* inline-block workaround for Firefox 2 */
display: inline-block;
Mathias