"display: inline-block" mit "position: absolute" kombinieren: was soll passieren?

8

Die IE- und WebKit-Browser scheinen zuzustimmen, dass "position: absolute" bei Anwendung auf "display: inline-block" (oder, im Fall von IE7, einfache "inline" -Elemente mit "hasLayout" gesetzt) ​​ergeben sollte Blöcke inline positioniert. Das heißt mit:

%Vor%

Diese Browser zeigen:

%Vor%

oder

%Vor%

Allerdings wird Firefox (3 und höher, glaube ich) folgendes geben:

%Vor%

Das heißt, sie lassen das Element "Inline-Block" in einer neuen Zeile beginnen. Nun, das ist eindeutig nicht das, was "Inline-Block" macht, ohne dass mit "position: absolute" kombiniert wird, und auch nicht, was "position: absolute" ohne "display: inline-block" macht. Ist das ein Fehler oder nur eine schlechte (mehrdeutige) Spezifikation?

Hier ist eine sehr einfache Sache.

( edit - vielleicht ist was Firefox mit "position: absolute" und keiner "display" -Einstellung macht ...)

    
Pointy 26.07.2011, 23:19
quelle

1 Antwort

4

Das richtige Verhalten hier ist nicht wirklich in der Spezifikation definiert. Die vertikale Position sollte "so aussehen, als wäre die Position nicht absolut". Genauer gesagt ist dieser Teil von Ссылка relevant:

  

Aber anstatt die Dimensionen tatsächlich zu berechnen   hypothetische Box, User Agents sind frei, ihre wahrscheinlich zu schätzen   Position.

Das heißt, dass der Gecko-Code, der dies implementiert, der Gecko-Implementierung von Inline-Blöcken vorausgeht, so dass nur geprüft wird, ob die ursprüngliche Anzeige "inline" ist. Ich habe Ссылка eingereicht, um zu sehen, wie man das in Gecko ändert.

    
Boris Zbarsky 27.07.2011, 02:25
quelle

Tags und Links