Wohin mit Style-Angaben für Includes?
Viennamade
- css
Hallo!
Ich hab eine horizontale Menüleiste und etliche Seiten. Dafür verwende ich den PHP-Befehl include, also:
html
head
/head
body
INCLUDE MENU.PHP <---
Seiteninhalt
/body
/html
Nun, die MENU.PHP enthält sehr viele CSS-Angaben. Die sind nicht in einer externen CSS-Datei, weil der IE am Mac bestimmte Angaben, in diesem Fall background-Image, direkt im Style-Bereich der HTML-Datei braucht.
Wenn ich jetzt XHTML-strict schreibe, mault der Validator bei <style type="text/css"> wenn dies in der MENU.PHP steht. Aber die ganzen Style-Angaben in den Head-Bereich jeder einzelnen Seite reinzutun kann doch auch nicht der Weisheit letzter Schluß sein?
(Ich habe es auch mit <![CDATA[ und ]]> probiert ...)
Danke
Viennamade
Hi,
html
head
/head
body
INCLUDE MENU.PHP <---
Seiteninhalt
/body
/htmlNun, die MENU.PHP enthält sehr viele CSS-Angaben. Die sind nicht in einer externen CSS-Datei, weil der IE am Mac bestimmte Angaben, in diesem Fall background-Image, direkt im Style-Bereich der HTML-Datei braucht.
Den Client kratzt es überhaupt nicht, ob serverseitig irgendwelche Includes verwendet wurden - er bekommt von deren Existenz überhaupt nichts mit.
Wenn ich jetzt XHTML-strict schreibe, mault der Validator bei <style type="text/css"> wenn dies in der MENU.PHP steht.
Das include wird im body eingefügt. Im body sind keine style-Elemente erlaubt.
Wundert es Dich, daß es dann zu Fehlermeldungen kommt?
Aber die ganzen Style-Angaben in den Head-Bereich jeder einzelnen Seite reinzutun kann doch auch nicht der Weisheit letzter Schluß sein?
Das head-Element ist der einzig zulässige Aufenthaltsort für style-Elemente.
(Ich habe es auch mit <![CDATA[ und ]]> probiert ...)
Wieso glaubst Du, daß ein CDATA-Bereich irgendetwas an der Unzulässigkeit von style-Elementen im body ändern würde?
cu,
Andreas
Hallo!
Das head-Element ist der einzig zulässige Aufenthaltsort für style-Elemente.
Verstanden.
(Ich habe es auch mit <![CDATA[ und ]]> probiert ...)
Wieso glaubst Du, daß ein CDATA-Bereich irgendetwas an der Unzulässigkeit von style-Elementen im body ändern würde?
Dachte CDATA heißt
C SS
D efinitions
A llowed
T here
A gain
:-)
Danke Andreas
Viennamade
Hi,
Wieso glaubst Du, daß ein CDATA-Bereich irgendetwas an der Unzulässigkeit von style-Elementen im body ändern würde?
Dachte CDATA heißt
C SS
D efinitions
A llowed
T here
A gain
:-)
Wenigstens haste ne gute Ausrede! ;-)
cu,
Andreas
Hello,
Wenn sich all Deine Includes auch an EVA halten würden, wäre das kein Problem.
Da aber die "includes" meistens selber direkt Ausgaben an den OB veranlassen, ist die ganze schöne Ordnung dahin.
Bring Deinen includes bei, dass sie die Style-Definitionen in ein Style-Array des Scriptes einhängen und die Ausgaben in eine Ausgabe-Array an der passenden Stelle. DOM sollte da als Vorbild genommen werden.
Und deine "Maschine" gibt nach der Generierung alles auf einmal aus.
Liebe Grüße aus http://www.braunschweig.de
Tom
Hallo!
Wenn sich all Deine Includes auch an EVA halten würden, wäre das kein Problem.
Da aber die "includes" meistens selber direkt Ausgaben an den OB veranlassen, ist die ganze schöne Ordnung dahin.
EVA? OB? Hab nix gefunden beim googeln (bin im Streß, die Kids sind eben gekommen).
Bring Deinen includes bei, dass sie die Style-Definitionen in ein Style-Array des Scriptes einhängen und die Ausgaben in eine Ausgabe-Array an der passenden Stelle. DOM sollte da als Vorbild genommen werden.
Jo, das es in diese Richtung gehen muß, dachte ich mir auch schon, aber ich bin in PHP bei weitem noch nicht so versiert. Ist jetzt auch ziemlich sinnlos, mangels Basics, aber wenn Du mich wohin verlinkst, wo ich so ein Schema angucken kann?
Besten Dank
Viennamade
Hi,
Hallo!
Wenn sich all Deine Includes auch an EVA halten würden, wäre das kein Problem.
Da aber die "includes" meistens selber direkt Ausgaben an den OB veranlassen, ist die ganze schöne Ordnung dahin.
EVA? OB? Hab nix gefunden beim googeln (bin im Streß, die Kids sind eben gekommen).
Eva: Frau von Adam.
OB: Tampons
;-)
EVA: Eingabe - Verarbeitung - Ausgabe (sprich: zuerst werden die Daten gesammelt, dann werden sie verarbeitet und erst am Schluß werden Ausgaben getätigt)
OB: Output buffer
cu,
Andreas
hi,
OB: Output buffer
wobei das auch wieder die englische beschreibung für die funktion eines tampons sein könnte ...
gruss,
wahsaga
OB: Output buffer
wobei das auch wieder die englische beschreibung für die funktion eines tampons sein könnte ...
ROFLAPMP ;-) !!!!!11
mfg, Thomas
Hallo MudGuard,
Eva: Frau von Adam.
Da wo das Leid angefangen hat. (-;
OB: Tampons
Nein OB bedeutet Oberhausen, wenigstens steht dat
hier so Ueberall auf den Autos. Die Stadt des
Stahls, der Missfits und die Kinderstube Soenke
Wortmans.
gruesse aus oberhausen ruhrpott
jens mueller
Hi,
Nein OB bedeutet Oberhausen,
Vielleicht für Euch in Mittelschweden... ;-)
cu,
Andreas
Hallo,
Wie schon Andreas schrieb, ist es dem Browser egal, wie, wo und wann
Du den HTML-Code zusammenbastelst.
Aber valide muss er sein!
Die sind nicht in einer externen CSS-Datei, weil der IE am Mac bestimmte Angaben, in diesem Fall background-Image, direkt im Style-Bereich der HTML-Datei braucht.
Bist Du ganz sicher, dass das so ist?
Und dass es nicht ein Referenzierungs-Problem (Pfad vom CSS zum Bild) ist?
Ich weiss, dass gewisse Mac-IE mit background-image Probleme haben.
Ich dachte aber, dass es an Anfuehrungszeichen bei url() liegt.
Dass Du keinen <style>-Bereich innerhalb von <body> haben darfst,
wurde Dir auch schon gesagt.
Wenn Dir optischer Schnickschnack (Hintergrundbilder) und
aussterbende Minderheiten-Browser (Mac-IE) extrem wichtig sind,
und es mit einem externen Stylesheet wirklich nicht klappt,
bleiben Dir hoechstens noch Inline-Styles (style-Attribute).
Gruesse,
Thomas
Hallo!
Die sind nicht in einer externen CSS-Datei, weil der IE am Mac bestimmte Angaben, in diesem Fall background-Image, direkt im Style-Bereich der HTML-Datei braucht.
Bist Du ganz sicher, dass das so ist?
Ziemlich ... aber ich werde das morgen nochmals recherchieren und mich hier wieder einklinken.
Ich weiss, dass gewisse Mac-IE mit background-image Probleme haben.
Ich dachte aber, dass es an Anfuehrungszeichen bei url() liegt.
Die Anfuehrungszeichen muessen weg für den IE/Mac.
Wenn Dir optischer Schnickschnack (Hintergrundbilder) und
aussterbende Minderheiten-Browser (Mac-IE) extrem wichtig sind,
mir nicht, aber dem Grafiker ... habe ihm heute http://www.dodabo.de/html+css/oel_kein_papier.html geschickt :-)
und es mit einem externen Stylesheet wirklich nicht klappt,
bleiben Dir hoechstens noch Inline-Styles (style-Attribute).
Stimmt, da habe ich sie nicht im Quelltext jeder Seite, ist vielleicht das Beste vorderhand. Schande über mich, an das einfachste habe ich gar nicht gedacht.
Ich schaue mir morgens nochmals das mit den background-imgs an!
Beste Grüße & Danke
Viennamade
Hallo!
Die sind nicht in einer externen CSS-Datei, weil der IE am Mac bestimmte Angaben, in diesem Fall background-Image, direkt im Style-Bereich der HTML-Datei braucht.
Bist Du ganz sicher, dass das so ist?
Und dass es nicht ein Referenzierungs-Problem (Pfad vom CSS zum Bild) ist?Ich weiss, dass gewisse Mac-IE mit background-image Probleme haben. Ich dachte aber, dass es an Anfuehrungszeichen bei url() liegt.
Also mein Freund, der für mich am MacIE testet macht glatt Wochenende. Habe aber gegoogelt.
Beste Grüße
Viennamade
Hallo Viennamade,
Danke fuer Deine Recherchen bezueglich Hintergrundbilder und Mac IE.
- Da gibts mal die Geschichte mit den Anführungszeichen http://www.l-c-n.com/IE5tests/misc/, wobei diese Problematik von der doctype-Deklaration abhängig sein dürfte: http://faculty-staff.ou.edu/G/Lance.D.Goins-1/cssbug/
- An anderer Stelle hab ich auch gelesen, daß doppelte Anführungszeichen anstelle von einfachen verwendet werden sollen.
Zu Deiner Info und fuer's Archiv:
http://www.morgain.ch/ mit dem Stylesheet http://www.morgain.ch/css/screen.css
Es geht um die kleine Foto unten links.
Ein Mac-IE-Benutzer (Band-Mitglied und somit Auftraggeber)
hatte gemeldet, dass er dieses Bild nicht sieht.
HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<!-- ... -->
<td class='impressumhp' colspan='2'>
ein paar Zeilen Text
ein paar Zeilen Text
</td>
<!-- ... -->
CSS:
td.impressumhp
{
/* ... */
color:#98FF98;
background: #494949 url("../img/hg_unten_2d.jpg") no-repeat top left;
}
Die Doctype-Angabe sollte AFAIK und gemaess
http://www.hut.fi/u/hsivonen/doctype.html
den Mac IE 5 in den "Standards" Modus schicken.
Und ich verwende doppelte Anfuehrungszeichen.
Mit den Hinweisen,
Gruesse,
Thomas
Hallo Thomas & Forum!
http://www.morgain.ch/ mit dem Stylesheet http://www.morgain.ch/css/screen.css
Es geht um die kleine Foto unten links.
Ein Mac-IE-Benutzer (Band-Mitglied und somit Auftraggeber)
hatte gemeldet, dass er dieses Bild nicht sieht.
Für mich wird die Chose immer kurioser ... ich hab jemand mit MAC-OS9 und IE 5.5 gebeten auf die o/genannte Seite zu gehen und er sah das Bild!
Leider "brauche" ich funktionierende background-images auch bei Mac-Usern und ich werde morgen noch mal alle Varianten durchspielen. Wenn's nicht geht, dann werde ich mit meinem Problem einen neuen Thread beginnen - anwendungsbezogen ... vielleicht komme ich dadurch zu einer anderen Lösung.
Beste Grüße
Viennamade
Hallo.
... ich hab jemand mit MAC-OS9 und IE 5.5 gebeten auf die o/genannte Seite zu gehen und er sah das Bild!
Angesichts der Versionsnummer kann es sich da ja ohnehin nur im eine Beta gehandelt haben (http://www.microsoft.com/mac/products/ie/).
MfG, at
Hallo!
Angesichts der Versionsnummer kann es sich da ja ohnehin nur im eine Beta gehandelt haben (http://www.microsoft.com/mac/products/ie/).
Nein, ist sicher ein Irrtum von mir mit 5.5, ist sicher die aktuellste Mac-IE für OS 9.
Danke
Viennamade
Hallo Thomas, hallo Forum!
Bezüglich der background-images am IE - Version 5.1.7(5815) - hatte ich Erfolg (das Problem ist, daß background-images im Mac/IE nicht immer sichtbar sind). Erfolgreich getestet habe ich auch am Mac/NN 7.02, Win/Mozilla 1.5, Win/Opera 7.21, Win/IE 6.0, Win/NN 7.02
Die Seite wird so deklariert:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
W3C-Validierung war erfolgreich.
Die Seite ist www.xyz.at/neu/seite.html (hier wird auch mit der CSS-Datei verlinkt)
Die CSS-Datei ist www.xyz.at/neu/css/bgimg.css
Das Bild ist www.xyz.at/neu/g/04s_Filter.jpg
Eintrag in der CSS: a#s4a:hover { background-image: url(g/04s_Filter.jpg); }
Also ohne Anführungszeichen und relativ.
Jo, und es funktioniert:-)
Danke für die Unterstützung.
Viennamade
Hallo,
Die Seite ist www.xyz.at/neu/seite.html (hier wird auch mit der CSS-Datei verlinkt)
Die CSS-Datei ist www.xyz.at/neu/css/bgimg.css
Das Bild ist www.xyz.at/neu/g/04s_Filter.jpgEintrag in der CSS: a#s4a:hover { background-image: url(g/04s_Filter.jpg); }
Also ohne Anführungszeichen und relativ.
Wenn das so in der www.xyz.at/neu/css/bgimg.css steht,
dann muesste die Grafik gemaess meinem Verstaendnis
hier zu finden sein:
www.xyz.at/neu/css/g/04s_Filter.jpg
Es wuerde mich sehr erstaunen, wenn ein Browser
(der nicht Netscape 4 heisst) diese relative Angabe
faelschlicherweise auf die HTML-Datei bezieht und somit
die Grafik unter www.xyz.at/neu/g/04s_Filter.jpg sucht...
http://www.w3.org/TR/REC-CSS2/syndata.html#uri
"For CSS style sheets, the base URI is that of the style sheet,
not that of the source document."
Gruesse,
Thomas
Hallo Thomas!
Die Seite ist www.xyz.at/neu/seite.html (hier wird auch mit der CSS-Datei verlinkt)
Die CSS-Datei ist www.xyz.at/neu/css/bgimg.css
Das Bild ist www.xyz.at/neu/g/04s_Filter.jpgEintrag in der CSS: a#s4a:hover { background-image: url(g/04s_Filter.jpg); }
Also ohne Anführungszeichen und relativ.Wenn das so in der www.xyz.at/neu/css/bgimg.css steht,
dann muesste die Grafik gemaess meinem Verstaendnis
hier zu finden sein:
www.xyz.at/neu/css/g/04s_Filter.jpg
Ich habe das jetzt alles mehrmals überprüft, es ist tatsächlich so, wie von mir oben beschrieben und funktioniert bei mir auf diesen Browsern, Win/Mozilla 1.5, Win/Opera 7.21, Win/IE 6.0, Win/NN 7.02.
Einen weiteren Test am Mac/IE kann ich erst morgen machen, aber nachdem ich dem "Mac-Tester" immer neue Dateien geschickt habe (Seite1.html, Seite2.html, Seite3 ....) glaube ich nicht, daß ihm der Cache etwas vorgegaukelt hat.
Darf ich Dir einen Link zur Seite mailen?
Beste Grüße
Viennamade
Hallo,
Ich habe das jetzt alles mehrmals überprüft, es ist tatsächlich so, wie von mir oben beschrieben und funktioniert bei mir auf diesen Browsern, Win/Mozilla 1.5, Win/Opera 7.21, Win/IE 6.0, Win/NN 7.02.
Erstaunlich...
Ich kann mir hoechstens vorstellen, dass die Browser
zuerst an der "richtigen" Stelle nach dem Bild fragen,
dort einen 404 kriegen und dann im Sinne einer
Fehlerbehandlung noch am andern Ort nachfragen.
Das koennte man dann auch im Logfile nachvollziehen.
Darf ich Dir einen Link zur Seite mailen?
Ja, gerne.
Freundliche Gruesse,
der unglaeubige Thomas
Hallo Thomas & Forum!
Erstaunlich...
...
der unglaeubige Thomas
.... und zwar zu Recht.
Es tut mir leid, ich habe in meinen letzten Postings zu diesem Thread irrtümlich falschen Quellcode als funktionierend dargestellt. Thomas hat sich mein funktionierendes Beispiel online angesehen und mich auf meinen Irrtum hingewiesen.
Vorgeschichte: Ich hatte Probleme mit background-images, auf einem Mac/IE waren sie nicht sichtbar. Jetzt habe ich Quelltext der auch auf dem Mac/IE funktioniert und den poste ich jetzt nochmals, damit dieser Thread sauber wird.
Die - auch am Mac/IE - funktionierende Seite ist so deklariert:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
W3C-Validierung war erfolgreich.
Die Seite ist www.xyz.at/neu/seite.html (hier wird auch mit der CSS-Datei verlinkt)
Die CSS-Datei ist www.xyz.at/neu/css/bgimg.css
Das Bild ist www.xyz.at/neu/g/04s_Filter.jpg
Eintrag in der CSS: a#s4a:hover { background-image: url(../g/04s_Filter.jpg); }
Also ohne Anführungszeichen und relativ.
In meinen vorhergehenden Posting(s) ist mir beim CSS-Eintrag das abhanden gekommen: "../". Und habe gleich drunter behauptet, es würde funktionieren. Tut mir leid.
Beste Grüße
Viennamade
Hallo auch,
ich habe ein aehnliches Problem:
Die Datei, die ich bearbeiten soll, besteht aus einem include, das den kompletten HTML-Kopf sowie Navigationsleisten usw. enthaelt, und eben "meiner" Webseite.
Leider kann ich den Header nicht bearbeiten (da er nicht mir "gehoert") und somit auch keine Styles ein-/hinzufuegen.
Habt ihr hier auch eine Loesung? (Ich will nicht in jedes einzelne "li" hineinschreiben, welche Abstaende es haben soll....)
Gruesse
Tauriel