Wenn ich benutzerdefinierte oder nicht unterstützte Elemente in meinem HTML verwende, können sie immer noch formatiert werden und der Browser wird sie rendern.
Zum Beispiel wird das Element HTML5 main
von Internet Explorer 11 und älter ( Quelle ) nicht unterstützt. Wenn main
vom IE gerendert wird, werden CSS-Regeln mit margin
und overflow
ignoriert. Dies bedeutet, dass der display
-Wert eines nicht erkannten Elements inline
ist.
Wo sind die Anfangseinstellungen für ein nicht erkanntes Element definiert?
(HINWEIS: Ich frage nicht nach den Vor- und Nachteilen von benutzerdefinierten Elementen. Ich möchte nur wissen, was CSS standardmäßig tut.)
Es sind nicht so viele unerkannte Elemente, wie alle Elemente. Denken Sie daran, dass CSS sowohl XML als auch HTML unterstützt. In XML sind alle Elemente unerkannt
In der CSS 2.1-Spezifikation Abschnitt 6.1.1 heißt es:
6.1.1 Angegebene Werte
Benutzeragenten müssen zuerst jeder Eigenschaft einen bestimmten Wert zuweisen auf den folgenden Mechanismen (in der Reihenfolge ihrer Präzedenz):
Wenn die Kaskade einen Wert ergibt, verwenden Sie ihn. Wenn der Wert "erben" ist, wird der angegebene Wert in "Der 'erben' definiert. Wert "unten.
Wenn die Eigenschaft geerbt ist und das Element nicht der Stamm der Dokumentstruktur ist, verwenden Sie andernfalls den berechneten Wert des übergeordneten Objekts Element.
Andernfalls verwenden Sie den Anfangswert der Eigenschaft. Der Anfangswert jeder Eigenschaft wird in der Definition der Eigenschaft angegeben.
Per Definition werden nicht erkannte Elemente im Stylesheet des Benutzeragenten nicht erwähnt, und da wir über das Standardverhalten sprechen, werden sie auch nicht im Stylesheet des Autors erwähnt. Also 1 trifft nicht zu.
Die Eigenschaft display ist definiert in 9.2.4 Die Eigenschaft 'display' . In den dortigen Regeln heißt es Inherited: no
, also gilt 2 nicht.
Also gilt 3. Wiederum aus den Regeln in 9.2.4 haben wir Initial: inline
, also sind die Elemente inline.
Für HTML-Elemente auf Blockebene sind diese standardmäßig blockiert, weil sie im Stylesheet des Benutzeragenten als solche aufgelistet sind. Ähnlich für andere Anzeigewerte wie table
, list-item
etc.
Tags und Links html css html5 language-lawyer w3c