2016-06-09 6 views
1

Ich denke über das Experimentieren mit einem benutzerdefinierten Stylesheet nach. Ein großes Problem, das ich seit langem gesehen habe, ist die einfache Tatsache, dass wir nur h1- und p-Tags für die Typografie haben.Was passiert, wenn Sie nur ein neues Tag auf einer Seite definieren? (keine Webkomponenten)

Es würde viel mehr Sinn machen, (ich zu) beschreibende Tags wie <hero>, <copy>, <micro>, <mini> usw. zu haben, die anstelle von seltsamen Dingen wie <h1 class='hero'> verwendet werden können.

Was passiert eigentlich mit immergrünen Browsern & IE 10+ wenn Sie nur ein neues Tag definieren? Es funktioniert im Allgemeinen zumindest in Chrome, um einfach ein neues Tag zu definieren und ihm einige CSS-Eigenschaften zuzuweisen. Wird es jedoch Einschränkungen geben, wie wir Javascript für ein so definiertes Tag verwenden können? Gibt es irgendwelche großen Nachteile?

Ich überlege nicht, eine Webkomponente für <hero> zu definieren, da dies eine Komponente registrieren müsste, wenn sie angeschlossen wird. Ich bin mir sicher, dass die Leistung für etwas so Einfaches wie ein HeavyHeld-Tag schwer wäre. Das letzte Mal erinnerte ich mich, dass html5shiv so etwas für IE8 oder IE9 gemacht hat. Wenn es das Tag nicht kennen würde, würde es das Tag einfach in ein Block-Level-Element konvertieren, das ich mit Standard-Eigenschaften denke. Ist das, was ab sofort in allen Evergreen-Browsern passiert, dh, solange wir keine besonderen Ereignisse, Methoden und Eigenschaften benötigen, die auf einem Tag definiert sind, wäre es in Ordnung, Tags wie <hero> zu schreiben?

+0

Sie können Ihre eigenen Tags erstellen und wie erwartet formatieren – azad

+3

Mögliches Duplikat von [Sind benutzerdefinierte Elemente gültig HTML5?] (Http://stackoverflow.com/questions/9845011/are-custom-elements-valid-html5) – JJJ

+1

Ist Ihnen die Validierung wichtig? Benutzerdefinierte Tags werden beispielsweise nicht wie https://validator.w3.org/ funktionieren. In einigen Browsern wird der Browser auch wieder in den [quirks mode] (https://developer.mozilla.org/en-US/) versetzt. docs/Quirks_Mode_and_Standards_Mode), was nicht gerade Spaß macht. –

Antwort

3

Der Browser wird das nicht erkannte Element im DOM mit einem Standardstyling unter der Annahme, dass es ein neues Feature ist (und in der Hoffnung, dass es ein CSS/JS-Shim geben wird, um Abwärtskompatibilität hinzuzufügen) statt fallen vorbei, weil es ungültigen HTML-Code erhalten hat.

(Dann wird in Zukunft ein Element mit diesem Namen wird hinzugefügt, um die Spezifikation, und Ihre Seite bricht).

Schreiben Sie kein ungültiges HTML.