Ausserhalb vom <head>-Bereich externe CSS-Dateien einbinden
Lutz Saure
- css
0 Herbalizer0 jürgen j.
Vorbemerkung:
Ich möchte Navigationsleisten per PHP in Tabellenspalten einbinden.
Diese sollen später per Contribute von anderen Menschen bearbeitet werden. Die Navigationsleisten sind einfache Tabellen ohne weiteren Code wie <head> oder <body>. Einfach nur <table>....</table>.
Contribute editiert so was, wenn die Datei auf .htm endet.
Die Navigation besteht aus Tabellen mit Hintergrundbildern und css-formatiertem Text. Um diesen Text in Contribute entsprechend sichtbar und editierbar zu machen, müssen die CSS-Angaben, die in der HTML-Hauptdatei eingelinkt werden, mit an Contribute übergeben werden.
Ich tue dies, in dem ich vor den Tabellecode einfach den gleichen Verweis wie in der HTML-Ursprungsdatei auf die entsprechende CSS-Datei gebe:
z.B. <link rel="stylesheet" type="text/css" href="datei_1.css">
Contribut erhält dadurch die CSS-Angaben, um die Buttontexte entsprechend darstellen zu können.
Dieser Link steht also in einer Datei, die zusammen mit einer Tabelle per PHP später in meine Hauptdatei eingebunden wird.
Das bedeutet, dass in der späteren Datei, die der Browser empfängt, 2 Mal ein <link ....> steht, ein mal im normalen <head>-Bereich und ein mal irgendwo im Quelltext zwischen <body> und </body>.
Das funktioniert auch ohne Probleme, jedoch dürfte es das nicht. Wenn ich eine 2. CSS-Datei angebe, die z.B. eine andere Formatierung beinhaltet, dann wird diese 2. Formatierung übernommen und die eigentliche Hauptformatierung übergangen. Es ist also nicht so, dass <link...> innerhalb von <body> ein unbekanntes tag wäre, es wird ausgewertet/verarbeitet.
Mein eigentliches Problem sieht so aus:
Laut SelfHTML/Tidy darf <link rel="stylesheet"...> NUR im <head>-Bereich stehen, es funktioniert aber, soweit ich das feststellen kann (WIN2k(NC 4.8, OP 7, MOZ 1.3, IE 5)) doch auch so ganz gut.
Besteht IRGENDEIN Grund zur Annahme, dass der unten ein wenig abgewandelte und abgebildete Code ganz und gar böse ist? Darf man das? Ist es gut? Tut das weh?
<html>
<head>
<title>Test</title>
<link rel="stylesheet" type="text/css" href="datei_1.css">
</head>
<body>
<link rel="stylesheet" type="text/css" href="datei_2.css">
<div class="formatierung">Hallo</div>
</body>
</html>
Grüße, Lutz
Hi!
Besteht IRGENDEIN Grund zur Annahme, dass der unten ein wenig abgewandelte und abgebildete Code ganz und gar böse ist? Darf man das? Ist es gut? Tut das weh?
Es ist nicht erlaubt!!!! In jeder HTML-Spezifikation gehört das link_element in das head-Element. Nur weil die Browser diesen Salat interpretieren, gehört ist es noch lange nicht richtig.
Für dein Problem würde ich vorschlagen, mit unterschiedlichen Klassen (zB. formatierung1, formatierung2 etc.) zu arbeiten und diese dann entsprechend zuzuordnen.
Gruß Herbalizer
Es ist nicht erlaubt!!!!
Ja, das ist ja was...
Für dein Problem würde ich vorschlagen, mit unterschiedlichen Klassen (zB. formatierung1, formatierung2 etc.) zu arbeiten und diese dann entsprechend zuzuordnen.
Tja, es geht mir ja nicht so sehr um unterschiedliche Klassen, sondern darum, dass ich HTML-Code-Schnipsel per Contribute verwalten lassen muß, die CSS-Formatierungen beinhlaten und die per PHP zusammengebaut werden.
Wenn ich die CSS-Formatierungen nicht mit den Schnipseln mitliefere, dann sind Formatierungen, die nicht im Code selbst, sozusagen inline angegeben werden, nicht zur Verfügung. Wenn ich per <link...> die mitliefere, dann sind sie halt in Contribute da. Und dann eben im body-Bereich
Aber Freund Jürgen hat zu diesem Thema was schönes geschrieben....
Grüzzi, Lutz
Hallo!
Mein eigentliches Problem sieht so aus:
Laut SelfHTML/Tidy darf <link rel="stylesheet"...> NUR im <head>-Bereich stehen, es funktioniert aber, soweit ich das feststellen kann (WIN2k(NC 4.8, OP 7, MOZ 1.3, IE 5)) doch auch so ganz gut.
Kleiner Irrtum deinerseits: Der <link> steht _immer_ im Head, und wenn du ihn woanders hinschreibst, wird der Browser ihn selber in den Head verschieben, sozusagen als Fehlerkorrektur.
Das kannst Du sehr schön sehen, wenn Du am Ende der Datei folgendes reinschreibst:
<script type='text/javascript'>
alert(document.getElementsByTagName("html")[0].innerHTML)
</script>
Dann wird Dir angezeigt, wie der Browser sich den Elementbaum zusammengebastelt hat.
Zu deiner Frage: Es ist falsch, aber die mir bekannten Browser korrigieren den Fehler.
tschüs, jürgen
Hi Jürgen
Kleiner Irrtum deinerseits: Der <link> steht _immer_ im Head, und wenn du ihn woanders hinschreibst, wird der Browser ihn selber in den Head verschieben, sozusagen als Fehlerkorrektur.
Das kannst Du sehr schön sehen, wenn Du am Ende der Datei folgendes reinschreibst:
<script type='text/javascript'>
alert(document.getElementsByTagName("html")[0].innerHTML)
</script>
Dann wird Dir angezeigt, wie der Browser sich den Elementbaum zusammengebastelt hat.
Schöner Hinweis, dank Dir.
Trotzdem eine saublöde Sache. Es wäre mir lieber, die Browser würden einfach sagen: kenn ich nicht, der Inhalt zwischen diesem Klammerpaar (<link...>) hat mich nicht zu interessieren.
Gruß, Lutz