ist das Kopf-Tag ein reguläres Tag, das standardmäßig nicht angezeigt wird

8

Beim Betrachten einer Webseite in Chrome ist mir aufgefallen, dass das <head> -Tag das CSS {display: none;} zugewiesen hatte.

Das hat mich zum Nachdenken gebracht, ist das <head> -Tag nur ein reguläres Tag, das Browser sich entschließen,

nicht anzuzeigen

Obwohl dies keinen offensichtlichen Nutzen hätte, könnte ich stattdessen ein <cheese> -Tag anstelle des <head> -Tags verwenden und das css "cheese {display: none;}" verwenden, um die gleiche Funktion wie ein <head> -Tag zu erreichen?

    
Adam Scot 21.04.2013, 11:35
quelle

3 Antworten

5

<head> und display:none

Ja, das <head> -Tag ist ein reguläres Tag, genau wie jedes andere mit dem Standard-User-Agent-Stylesheet, auf das display:none; angewendet wurde. Ich kühle Trick, den Sie tun können, um zu beweisen, dass das Ihre Stile zeigt:

jsFiddle

%Vor%

Für zusätzlichen Spaß können Sie contenteditable zu Ihrem head-Tag hinzufügen, damit Sie die Stile der Seite innerhalb der Seite bearbeiten können.

jsFiddle

<cheese>

Wie bei der Erstellung einiger zufälliger Tags wie <cheese> funktioniert dies (wie auch immer) nicht wie erwartet, da der Browser dies nicht erwartet. Wenn Sie Dinge in HTML tun, die nicht in der Spezifikation enthalten sind, kann dies nicht standardmäßig gehandhabt werden.

Ein Beispiel dafür ist, wenn Sie versuchen, die neuen semantischen HTML5-Tags ( <section> , <nav> , ...) in älteren Versionen von IE zu verwenden, sie nicht erkennen und die Seite verdecken. Das Einbringen von Modernizr wendet einige Polyfills an, um dies zu beheben und eine reguläre <div> zu emulieren.

    
Daniel Imms 21.04.2013 11:40
quelle
2

Im Hinblick auf die reine Anzeige - ja {display:none;} wird Ihr Element verstecken.

Allerdings hat HTML <head> eine eindeutige Bedeutung in HTML als Container für die Kopfelemente, während <cheese> dies nicht teilt.

Browser wissen, dass es nicht angezeigt wird und Suchmaschinen-Crawler verstehen die besondere Bedeutung des <head> -Tags.

    
m.edmondson 21.04.2013 11:39
quelle
0

Der Browser rendert das Dokument body , das in den <body></body> -Tag-Paaren enthalten ist. Dies ist der Teil des Dokuments, der gerendert und angezeigt wird.

HTML definiert eine eigene Gruppe von Tags und Attributen, aus denen die Sprache besteht. Die Dokumenttypdeklaration (DTD) definiert, welche Gruppe von Tags und Attributen das enthaltene Dokument verwendet. Wenn Ihre DTD also für HTML5 ist, verwenden Sie HTML5-spezifische Tags und Attribute (oder besser gesagt, Sie sollten sollte und der Browser sollte das gleiche tun).

Wenn Sie also Ihrem Mix ein eigenes Tag hinzufügen möchten, sagen wir <cheese> , könnten Sie es irgendwo im Dokument platzieren, wenn es in den <body></body> -Tag-Paaren ist, wird der Browser das Tag wahrscheinlicher rendern ( da es nicht Teil von HTML ist und es nicht weiß, was damit zu tun ist).

Wenn Sie es vor den <body></body> -Tags hinzufügen würden, dann wäre Ihr Dokument nicht wohlgeformt (das heißt, es entspricht nicht den Regeln des HTML-Dokumenttyps), wie auch immer es aussieht hat keine Auswirkungen auf das, was vom Browser gerendert wird.

    
Burhan Khalid 21.04.2013 11:41
quelle

Tags und Links