Kann HTML zwei HEAD-Tags enthalten

10

In meiner Webanwendung habe ich die Header.jsp-Datei erhalten, die Standard-Header-Inhalte enthält. Ich schließe es in allen anderen Seiten mit JSP ein: include-Tag innerhalb des Body-Tags jeder einzelnen Seite.

Header.jsp enthält ein eigenes HEAD-Tag, um Standardmetatags, Link-Stylesheets, Skripts und einige HTML-Elemente anzugeben. Gleichzeitig werde ich auf allen anderen einzelnen Seiten ein weiteres HEAD-Tag haben, um Titel, seitenspezifisches Skript und Stylesheets zu definieren.

Zum Beispiel:

Header.jsp

%Vor%

Main.jsp

%Vor%

ob es richtig ist, so zu machen?

    
sureshd 11.06.2014, 08:14
quelle

6 Antworten

9

Es ist nicht gültig gemäß dem Standard

Relevanter Teil:

  

4.2.1 Das Kopfelement

     

Kategorien:       Keiner.

     

Kontexte, in denen dieses Element verwendet werden kann:       Als erstes Element in einem HTML-Element.

Ihr zweites <head> -Element wäre nicht das erste Element im HTML-Dokument.

    
mvillar 11.06.2014, 08:41
quelle
22

Lassen Sie mich die Antworten mit "ja und nein" erweitern.

Normalerweise beantworten die Leute diese Fragen in der Theorie, wie "Nein, weil es nicht den Standards entspricht". Das stimmt, ist es nicht. Zukünftige Browser unterstützen es möglicherweise nicht, einige Quellenparser können verwirrt werden, Leute, die auf Ihre Referenzseiten schauen, denken vielleicht, dass Sie weniger wissen als Jon Snow, dunkle Kräfte können aufwachen, und so weiter.

JEDOCH.

Ja, es passiert da draußen in der realen Welt und JA, praktisch alle Browser behandeln diesen Fall auf die gleiche Weise: sie akzeptieren beide Kopf-Tags und funktionieren wie erwartet. Normalerweise möchten Browser, dass Sie die "bestmögliche Seite" sehen, die sie aus dem Chaos, das sie haben, zusammenstellen können. Wirklich, es ist ihre Grundabsicht, sie wollen dir zeigen, dass das Internet funktioniert, nicht, wie schlecht deine Lieblingswebsite ist. Also wahrscheinlich, ja, sogar zukünftige Browser werden HAPPILY DEAL mit einer beliebigen Anzahl von Head-Tags, sogar Head-Tags ohne ein schließendes Tag (sie werden erkennen, wo der Körper beginnt), werden sie eine Menge böser nehmen Dinge, bevor sie sich entscheiden zu sterben.

Schau dir dieses schreckliche Durcheinander an:

%Vor%

Es wird dringend empfohlen, nur ein HEAD-Tag zu haben (und alle anderen Tags, die ich absichtlich weggelassen habe - im Allgemeinen ein guter Freund deines Browsers) - aber wenn du in einem dunklen Verlies mit hungrigen Löwen und deiner bist Der einzige Ausweg ist die Verwendung von zwei HEAD-Tags, machen Sie es einfach. Es ist ein Mythos, dass Nicht-Standard-Websites schlechter gedeihen, die Leute normalerweise nicht wissen und Angst haben, also beschreiben sie die Hölle als einen Ort, an dem Validierer-versagende Webautoren gehen.

TLDR: In der Praxis funktionieren zwei Kopf-Tags.

Jetzt nur noch eins wenn möglich.

    
dkellner 13.10.2015 18:59
quelle
2

Gute Antwort @ Gwenc37. Sie können beliebige Tags in anderen Tags verwenden, es ist jedoch immer am besten, die W3C-Standards und Spezifikationen einzuhalten. Später im Projekt könnten Sie einen Punkt erreichen, an dem Ihr HTML-Code in einem Browser nicht korrekt analysiert wird oder sogar schlimmere Unterbrechungen.

Um sicher zu sein, halten Sie sich lieber an die W3C-Standards. Auf diese Weise können Sie nichts falsch machen. Hoffe, das hilft.

    
heinkasner 11.06.2014 08:25
quelle
1

Gemäß W3C-Standards, Nein! Du kannst es nicht haben.

In Ihrem Fall verwenden Sie JSP als serverseitiges Skript. Das Problem kann mit CONSTANTS für Stylesheet / Scripts / andere HTML-Elemente gelöst werden.

Sie müssen lediglich die Bedingung in Ihrer Datei "main.jsp" gemäß den Seitenanforderungen hinzufügen.

    
Sagar Awasthi 11.06.2014 10:18
quelle
1

Hier ist eine Idee, die Sie ausprobieren könnten

Mach das in deinem Hauptkopf

%Vor%

Beachten Sie, dass ich das End-Head-Tag weggelassen habe. Dann müssen Sie in allen Ihren Dateien entweder das head-Tag schließen oder zusätzliche Kopfzeilen hinzufügen und dann Ihre head-Tags schließen, zB

%Vor%

Wie bei Ihrem Seitentitel können Sie ein wenig PHP ausführen, um festzustellen, auf welcher Seite Sie sich befinden

    
Thomas Williams 29.08.2016 10:06
quelle
0

Gemäß W3C-Standards können Sie nicht zwei HEAD-Tags haben.

In Bezug auf Ihr Problem können Sie die Datei header.jsp ohne HEAD-Tag aufrufen, oder Sie können sie in scripts.jsp oder constants.jsp

umbenennen

Zum Beispiel:

Header.jsp

%Vor%

Main.jsp

%Vor%     
Sagar Awasthi 21.11.2014 04:43
quelle

Tags und Links