Viennamade: Wohin mit Style-Angaben für Includes?

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

  1. Hi,

    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.

    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

    --
    MudGuard? Siehe http://www.Mud-Guard.de/
    1. 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

      1. 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

        --
        MudGuard? Siehe http://www.Mud-Guard.de/
  2. 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

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    1. 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

      1. 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

        --
        MudGuard? Siehe http://www.Mud-Guard.de/
        1. hi,

          OB: Output buffer

          wobei das auch wieder die englische beschreibung für die funktion eines tampons sein könnte ...

          gruss,
          wahsaga

          1. OB: Output buffer
            wobei das auch wieder die englische beschreibung für die funktion eines tampons sein könnte ...

            ROFLAPMP ;-) !!!!!11

            mfg, Thomas

        2. 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

          --
          I am a scout. How can I use Perl in my day-to-day scout business? For example, helping little old ladies across the street. - See the perllol man page.
          1. Hi,

            Nein OB bedeutet Oberhausen,

            Vielleicht für Euch in Mittelschweden... ;-)

            cu,
            Andreas

            --
            MudGuard? Siehe http://www.Mud-Guard.de/
  3. 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

    1. 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

    2. 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

      1. Hallo Viennamade,

        Danke fuer Deine Recherchen bezueglich Hintergrundbilder und Mac IE.

        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,

        • dass HTML und CSS valide sind
        • dass alle uebrigen CSS-faehigen Browser (exkl. Netscape 4, vor
             dem ich CSS grundsaetzlich verstecke) es korrekt anzeigen
        • dass der Mac-IE einen winzigen (und schwindenden) Marktanteil hat
        • dass es ja nur um ein optisches Detail geht
          war die Sache fuer die Auftraggeber und somit auch fuer mich erledigt. ;-)

        Gruesse,

        Thomas

        --
        Bitte keine Mails mit Fachfragen - dafuer gibt es das Forum!
        Ich mag es, wenn URLs verlinkt sind (</faq/#Q-19>).
        Oft gestellte PHP-Fragen beantwortet die dclp-FAQ bestens: http://www.dclp-faq.de/
        1. 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

          1. 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

            1. 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

        2. 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

          1. 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.jpg

            Eintrag 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

            --
            Bitte keine Mails mit Fachfragen - dafuer gibt es das Forum!
            Ich mag es, wenn URLs verlinkt sind (</faq/#Q-19>).
            Oft gestellte PHP-Fragen beantwortet die dclp-FAQ bestens: http://www.dclp-faq.de/
            1. 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.jpg

              Eintrag 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

              1. 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

                1. 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

  4. 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