molily: inline-block vs. float

Beitrag lesen

Was ich nicht verstehe, wie der IE damit umgeht. Wenn er inline-block nicht kennt

Kennt er aber! Aber nicht, wie es der Standard vorschreibt. Wie gesagt hat inline-block keine andere Wirkung, als hasLayout zu triggern. An der Anzeigeweise ändert es nichts - Blockelemente werden als Block und Inline-Elemente inline angezeigt.
http://www.brunildo.org/test/InlineBlockLayout.html

Denn um ehrlich zu sein ich verstehe Gunnars Hack nicht so ganz.
* html li{display: inline;}

Ist ein Selektor-Hack, den nur der IE 6 interpretiert.
Aus Sicht von HTML ist dieser Selektor Unsinn, weil es kein Element oberhalb von html gibt. IE 6 interpretiert den Selektor trotzdem.

*:first-child+html li{ display: inline;}

Ein weiterer Selektor-Hack, der m.W. darauf beruht, dass der IE 7 den DOCTYPE irrtümlicherweise als DOM-Knoten ansieht, der im CSS berücksichtigt wird.
Andere Browser ignorieren diese Regel, weil es kein Element vor dem html-Element gibt. Das html-Element hat keine Geschwister-Elemente.

Warum ingnoriert der IE dann die das vorhande  display:inline-block;?

Weil eine späterer Regel mit display:inline (mit einem Selektor mit gleicher oder höherer Spezifität) die vorherige Regel mit display:inline-block überschreibt.

Mathias