Beate: Referenzieren von Hintergrundbildern in zentraler css-Datei

CSS und kein Ende :-(

Vielleicht kann mir jemand von Euch einen Tipp für folgendes Problem geben:

Ich habe alle css-Formatierungen in 1 zentralen "mystyles.css" Datei abgelegt, die sich mit der Mehrheit der übrigen html-Dateien im gleichen Verzeichnis befindet.
In der css-Datei sind u.a. auch classes enthalten, denen Hintergrundbilder zugewiesen wurden (und dementsprechend mit ihrer URL aufgeführt werden müssen).

Nun die Frage: bezieht sich der Pfad, den ich für die Hintergrundbilder angeben muss, auf die Lage der Bilder zur "mystyles.css"-Datei? Oder auf ihre Lage zu der Datei, in der die css-styles letztendlich angewendet werden?
(Die Frage stellt sich für eine geringe Anzahl von html-Dateien, die bei mir in Unterordnern liegen und sich wie alle anderen auf die zentrale css-Datei beziehen - für diese wäre der Pfad der Hintergrundbilder dann nämlich ein anderer...)

Vielen Dank und Grüße aus dem hohen Norden,

Beate

  1. Hi,

    (Die Frage stellt sich für eine geringe Anzahl von html-Dateien, die bei mir in Unterordnern liegen und sich wie alle anderen auf die zentrale css-Datei beziehen - für diese wäre der Pfad der Hintergrundbilder dann nämlich ein anderer...)

    Nimm doch einfach absolute Pfade, dann hast Du gar keine Probleme...
    Im übrigen sind die Pfade relativ zu den HTML-Dateien, also im Unterverzeichnis sind andere Pfade nötig.

    Grüße

    Alex (:

    1. Moin!

      Nimm doch einfach absolute Pfade, dann hast Du gar keine Probleme...

      Genau. Weil...

      Im übrigen sind die Pfade relativ zu den HTML-Dateien, also im Unterverzeichnis sind andere Pfade nötig.

      ...das zwar laut Standard nicht stimmt (die Pfadangaben in den CSS-Dateien sind relativ zur Position der CSS-Datei, nicht zur einbindenden HTML-Datei), sich aber Netscape 4 daran nicht unbedingt hält (und vermutlich einige frühe CSS-Browser auch nicht).

      - Sven Rautenberg

    2. hi

      Im übrigen sind die Pfade relativ zu den HTML-Dateien, also im Unterverzeichnis sind andere Pfade nötig.

      Quatsch!
      Das macht nur Netscape 4 so. Laut CSS-Spec (und auch laut verhalten in allen anderen mir bekannten Browsern), ist es relativ zur CSS-Datei.

      Grüße aus Lüneburg

      Kai

      1. Tja - scheinbar wird mit jeder Stunde vor dem Rechner das Brett vor meinem Kopf dicker - auf die Lösung mit den absoluten Pfadangaben hätte ich ja auch mal selber kommen können...

        Das ist, so wie es aussieht, auch die unproblematischste Variante (es sind nur eine Handvoll Grafiken, die zu referenzieren sind, ansonsten gäbe es ja immer bei Änderung der Verzeichnis-Struktur ein ziemliche Pfad-Umbau-Theater, oder?)

        Die offiziell "gültige" Variante, also der Bezug auf die css Datei funktioniert prima in den 6er Versionen, aber Netscape 4 weigert sich. Die "inoffizielle" Variante - mit den Unterverzeichnissen als Bezugspunkt klappt zwar dann mit der 4er Version, dafür streiken dann aber die neuen.... zum Haareraufen!

        Insofern werde ich wohl wie eingangs erwähnt bei den absoluten Pfadangaben hängen bleiben -

        Vielen Dank für die Hilfe!!!

        Beate

        1. Hallo Beate,

          Insofern werde ich wohl wie eingangs erwähnt bei den absoluten Pfadangaben hängen bleiben -

          Nicht unbedingt! Siehe auch
          http://forum.de.selfhtml.org/archiv/2001/11/538/#m3876

          Zusammengefaßt gibt es 3 Varianten zu Pfaden mit CSS (Namen stammen aus einem alten Beispiel):

          a) Stelle die .css-Datei in das selbe Verzeichnis wie die .html-Datei. Nicht besonders schön bei vielen Verzeichnissen.

          b) Eine Mischung aus relativer und absoluter Adressierung: Benutze anstelle von href="http://www.meinedomain.de/images/bild.gif" nur href="/images/bild.gif". Damit beginnt der Browser ab der Root zu suchen, egal ob lokal auf der Festpladde oder unter deiner Internetdomain.

          c) Stelle deine .css-Datei auf die selbe VerzeichnisSTUFE wie die *.gif-Datei. Z.B.
           - ordner/daten/index.html
           - ordner/images/bild.gif
           - ordner/styles/formatierung.css

          In deiner "index.html"-Datei kommt ein
            <link rel="stylesheet" type="text/css"
             href="../styles/formatierung.css">

          Innerhalb der "formatierung.css"-Datei schreibst du schlicht
            background-image:url(../images/bild.gif)

          Was passiert: Egal ob der Browser (NS, IE, ...) vom Verzeichnis der .html-Datei oder der .css-Datei ausgeht, er wechselt zuerst ins nächst höhere Verzeichnis, also bei dir "ordner/". Ab dort sucht er nach dem Unterverzeichnis "images/" und dort nach der Datei "bild.gif".

          Ich hoffe die Version c) hilft dir weiter.

          Heiko