Stylesheet im Body einbinden
Dieter Raber
- css
0 Bert Randolf0 Cheatah0 Dieter Raber0 Cheatah0 Dieter Raber0 Cheatah
0 Ingo Turski0 Avalon0 Gunnar Bittersmann
Hallo,
Externe Javascripte kann man ja bekanntlich, die passenden Umstaende vorausgesetzt, an nahezu beliebiger Stelle im Body einer Seite einbinden. Bei CSS hingegen ist man, was externe Dateien anbetrifft, auf dem head-Bereich angewiesen. Zwar funktioniert eine Einbindung im Body auch, ist aber meines Wissens nicht valide.
Ich habe nun eine PHP-Klasse, die im Endeffekt ein Formular erzeugt, bei dem ich fuer einige Styles feste Werte brauche. Man muss sich das so vorstellen, dass die build() Funktion der Klasse ein Formular mit allem drum und dran zurueckgibt, nur halt nicht dem Stylesheet. Ich mag aber auch nicht die Styles in jedem Element deklarieren, wenn es sich vermeiden laesst.
Meine Frage ist, gibt es neben der Tatsache, dass eine Stylesheeteinbindung im Body nicht valide ist, noch ander Risiken und Nebenwirkungen?
Gruß,
Dieter
Hallo,
Meine Frage ist, gibt es neben der Tatsache, dass eine Stylesheeteinbindung im Body nicht valide ist, noch ander Risiken und Nebenwirkungen?
hmmm, das einzige was mir jetzt einfällt, wäre, das es evtl. einfach nicht interpretiert wird.
Bert
Hi,
Meine Frage ist, gibt es neben der Tatsache, dass eine Stylesheeteinbindung im Body nicht valide ist, noch ander Risiken und Nebenwirkungen?
reicht das nicht an Nachteilen?
Cheatah
Hallo Cheatah,
reicht das nicht an Nachteilen?
Nicht so richtig. Gemessen an dem Vorteil, dass ich nicht bergeweise Inlinestyles deklarieren muss, koennte ganz gut damit leben, dass der Validator meiner gram waere. Notfalls wuerde ich evtl. aufkeimende Minderwertigkeitsgefuehle in einem Dram Glenlivet ertraenken ;-)
Gruß,
Dieter
Hi,
reicht das nicht an Nachteilen?
Nicht so richtig.
dann sind Dir die Konsequenzen invaliden Codes nicht bewusst, z.B. Inkompatibilität und nicht standardisierte Fehlerkorrekturen. Sprich: In den Sternen liegende Ergebnisse.
Gemessen an dem Vorteil, dass ich nicht bergeweise Inlinestyles deklarieren muss,
Niemand hat gesagt, dies sei die Alternative.
Cheatah
Hallo Cheatah,
dann sind Dir die Konsequenzen invaliden Codes nicht bewusst, [...]
Ok, der Punkt geht an Dich
Niemand hat gesagt, dies sei die Alternative.
Sieht aber schon so aus. Entweder ich ich binde ein Stylesheet im Head ein (was ich hier aus den dargelegten Gruenden eher nicht machen moechte) oder ich deklariere Inlinestyles. Oder aber mir entgeht was, ich hoffe Du laesst mich in dem Fall nicht dumm sterben.
Gruß,
Dieter
Hi,
Sieht aber schon so aus. Entweder ich ich binde ein Stylesheet im Head ein (was ich hier aus den dargelegten Gruenden eher nicht machen moechte) oder ich deklariere Inlinestyles. Oder aber mir entgeht was, ich hoffe Du laesst mich in dem Fall nicht dumm sterben.
ändere das Konzept Deiner Programmlogik dahingehend, dass der <head>-Bereich zu jedem notwendigen Zeitpunkt manipulierbar ist, oder sorge für eine hinreichend frühe Entscheidung(smöglichkeit).
Cheatah
Hi,
Man muss sich das so vorstellen, dass die build() Funktion der Klasse ein Formular mit allem drum und dran zurueckgibt, nur halt nicht dem Stylesheet. Ich mag aber auch nicht die Styles in jedem Element deklarieren, wenn es sich vermeiden laesst.
und was spricht gegen die Übernahme in ein ausgelagertes Stylesheet? Gebe dem form eine ID und Du kannst sämtliche Angaben hierüber individuell festlegen.
freundliche Grüße
Ingo
Hallo Ingo,
Gebe dem form eine ID und Du kannst sämtliche Angaben hierüber individuell festlegen.
Das ist mir schon klar und funktioniert im Moment auch so. Das hat aber den Nachteil, dass jemand, der die Klasse benutzen will, vorher auch das Stylesheet eintragen muss. Was mir vorschwebt, ist dass man nur schreibt
$foo = new dieKlasse(einige Parameter);
$bar = $foo -> machDasFormular();
und $bar enthaelt alles, komplett mit Styles, Bildern usw.
Gruß,
Dieter
Hi,
Das ist mir schon klar und funktioniert im Moment auch so. Das hat aber den Nachteil, dass jemand, der die Klasse benutzen will, vorher auch das Stylesheet eintragen muss.
Ich sehe den Vorteil, würde es aber dennoch nicht machen, da nicht sichergestellt ist, ob alle Browser (auch künftig) das CSS im body interpretieren. Ist es denn wirklich ein zu großer Aufwand, dem form eine ID zu geben und dann den dazu passenden Style-Bereich im head unterzubringen?
freundliche Grüße
Ingo
Hallo Ingo,
Ist es denn wirklich ein zu großer Aufwand [...]
Ich kann wohl ganz gut damit leben. Ich haette es halt gerne, wie beschrieben, vereinfacht, aber wenn es nicht sein soll, geht meine kleine Welt auch nicht unter.
Gruß,
Dieter
Meine Frage ist, gibt es neben der Tatsache, dass eine Stylesheeteinbindung im Body nicht valide ist, noch ander Risiken und Nebenwirkungen?
Bei Risiken oder Nebenwirkungen schlagen Sie bitte Ihren Arzt oder Apotheker oder zerreißen die Packungsbeilage!
Gruß
Avalon
Dieter,
Hallo,
Externe Javascripte kann man ja bekanntlich, die passenden Umstaende vorausgesetzt, an nahezu beliebiger Stelle im Body einer Seite einbinden. Bei CSS hingegen ist man, was externe Dateien anbetrifft, auf dem head-Bereich angewiesen. Zwar funktioniert eine Einbindung im Body auch, ist aber meines Wissens nicht valide.
Ich habe nun eine PHP-Klasse, die im Endeffekt ein Formular erzeugt, bei dem ich fuer einige Styles feste Werte brauche. Man muss sich das so vorstellen, dass die build() Funktion der Klasse ein Formular mit allem drum und dran zurueckgibt, nur halt nicht dem Stylesheet. Ich mag aber auch nicht die Styles in jedem Element deklarieren, wenn es sich vermeiden laesst.
Meine Frage ist, gibt es neben der Tatsache, dass eine Stylesheeteinbindung im Body nicht valide ist, noch ander Risiken und Nebenwirkungen?
Dieter,
Weiß nicht, ob ich dich richtig verstanden habe, aber kannste nicht alle Varianten in dein Stylesheet (das du problemlos im head einbindest) schreiben à la
form.Variante1 {...}
form.Variante1 button {...}
...
form.Variante2 {...}
form.Variante2 button {...}
...
form.VarianteN {...}
form.VarianteN button {...}
...
und beim Generieren dem form eine Klasse aus Variante1, ..., VarianteN zuweisen?
Gunnar