Standardeinstellungen nicht erkannter HTML-Elemente

8

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.)

    
Michael_B 28.02.2016, 23:09
quelle

1 Antwort

5

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):

     
  1. Wenn die Kaskade einen Wert ergibt, verwenden Sie ihn. Wenn der Wert "erben" ist, wird der angegebene Wert in "Der 'erben' definiert.   Wert "unten.

  2.   
  3. Wenn die Eigenschaft geerbt ist und das Element nicht der Stamm der Dokumentstruktur ist, verwenden Sie andernfalls den berechneten Wert des übergeordneten Objekts   Element.

  4.   
  5. Andernfalls verwenden Sie den Anfangswert der Eigenschaft. Der Anfangswert jeder Eigenschaft wird in der Definition der Eigenschaft angegeben.

  6.   

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.

    
Alohci 28.02.2016, 23:46
quelle

Tags und Links