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?
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.
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.
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.
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.
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
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
umbenennenZum Beispiel:
Header.jsp
%Vor%Main.jsp
%Vor%