zurück zur Startseite
  


Zurück XHTMLforum > (X)HTML und CSS > CSS
Seite neu laden Probleme mit background-image

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 14.03.2009, 16:44
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 14.03.2009
Beiträge: 29
labbixenja befindet sich auf einem aufstrebenden Ast
Frage Probleme mit background-image

Hallo,

bei einem CMS werden die Seiten ja immer ausgehend von einer index erstellt. Nun möchte ich manchen Seiten ein eigenes Logo-Bild geben. Dabei habe ich folgenden Tipp für die Durchführung bekommen:

In der style.css ist die Standardgrafik definiert:

#header {
background: url(banner.jpg);
background-repeat: no-repeat;
}

Dazu habe ich im Hauptverzeichnis einen Ordner Logo erstellt und dort die gewünschten alternativen Hintergrundgrafiken eingefügt, die allesamt nach dem URLAnhang benannt sind, also home.jpg, angebote.jpg, leistungen.jpg usw.

Dann wird auf der index oben im head folgender Code eingefügt:

<style type="text/css">
#header {
background-image: url(logo/{$_SERVER['QUERY_STRING']}.jpg);
}
</style>

Fehlt die Grafik, soll jedoch die Standardgrafik aus der style.css verwendet werden.

Aber genau das geschieht nicht. Ist das entsprechende Bild im Ordner ist alles okay. Aber wenn nicht, kommt nicht automatisch die Standardgrafik aus der style.css sondern bleibt alles weiss. Auch das Hinzufügen von transparent also

<style type="text/css">
#header {
background-image: url(logo/{$_SERVER['QUERY_STRING']}.jpg) transparent;
}
</style>


bringt nicht das gewünschte Ergebnis. Was mache ich falsch? Hat jemand Rat?

Vorab schonmal vielen Dank.
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 22.09.2009, 23:08
Neuer Benutzer
neuer user
 
Registriert seit: 22.09.2009
Beiträge: 6
Brennpunkt befindet sich auf einem aufstrebenden Ast
Standard

Konntest Du das Problem lösen? Ich suche genau diese Lösung. Es geht um CMBasic, oder?
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 23.09.2009, 00:04
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 14.03.2009
Beiträge: 29
labbixenja befindet sich auf einem aufstrebenden Ast
Standard CM Basic

Hallo,

genau es geht um CM Basic. Herr Hanke hat leider nicht geantwortet und ich konnte das Problem nicht lösen. Es gibt für jede Seite ein BILD bzw. zur Not das Standardbild zusätzlich in "neue_seite".jpg umbenennen.

Gruss Labbixenja
Mit Zitat antworten
  #4 (permalink)  
Alt 23.09.2009, 09:42
Benutzer
neuer user
 
Registriert seit: 14.09.2009
Beiträge: 88
Hook befindet sich auf einem aufstrebenden Ast
Standard

Wenn dieser Code prinzipiell funktioniert:
Code:
<style type="text/css">
#header {
background-image: url(logo/{$_SERVER['QUERY_STRING']}.jpg);
}
</style>
und die index eine .php Datei ist, sollte eine einfache Abfrage, ob das Bild existiert reichen:
PHP-Code:
<style type="text/css">
<?php if (file_exists($_SERVER['QUERY_STRING'].".jpg")) { ?>
#header {
background-image: url(logo/{$_SERVER['QUERY_STRING']}.jpg);
}
<?php ?>
</style>
Nicht getestet!
Gehört auch eigentlich in einen anderen Bereich (Serverseitige Scriptsprachen)
Mit Zitat antworten
  #5 (permalink)  
Alt 23.09.2009, 15:27
Neuer Benutzer
neuer user
 
Registriert seit: 22.09.2009
Beiträge: 6
Brennpunkt befindet sich auf einem aufstrebenden Ast
Standard

Vielen Dank für eure schnellen Antworten.

Zitat:
zur Not das Standardbild zusätzlich in "neue_seite".jpg umbenennen.
Das verstehe ich nicht. "neue_seite.jpg" in der cmbasic.css als Standardbild angeben oder ein Bild mit diesem Namen im Logo-Ordner ablegen? Funktioniert es damit?

Bist Du bei CMBasic geblieben oder bist Du auf ein anderes CMS gewechselt?

@Hook
Ich habe Deinen Code ausprobiert - damit erscheint dann nur eine komplett weiße Webseite.
Sieh es mir bitte nach: ich kann nur ein klein wenig mit XHTML und CSS umgehen. Von PHP oder gar Skriptsprachen habe ich keine Ahnung.

Das funktioniert:
Die individuellen Fotos erscheinen, so bald ich einen Reiter anklicke.
Beispiel: "www.webseite.de/?impressum" = Foto mit dem UrlAnhang "impressum" wird angzeigt - wie gewünscht.
"www.webseite/?kontakt" = entsprechendes Foto wird angezeigt. Perfekt.

Das Problem:
NUR beim ersten Aufrufen der Webseite erscheint KEIN individuelles Logo-Bild. Eigentlich müsste hier das in cmbasic.css-Datei angegebene Logo-Bild erscheinen - das funktioniert aber nicht.
Konkret:
Ich gebe "www.webseite.de" in den Browser ein, dann macht dieser automatisch "www.webseite.de/" daraus.
Der Platzhalter für das Logo bleibt frei. Klicke ich dann auf den Reiter "Startseite" (Browser springt auf: www.webseite.de/?home" kommt das gewünschte Logo.

Mögliche Lösung:
Wenn ich ein Bild für "www.webseite.de/" im Logo-Ordner hinterlege, müsste das beim ersten Aufrufen der Webseite erscheinen.
Nur welchen UrlAnhang muss ich diesem Foto dann geben?

Bin für jeden Tipp und alternative Lösungen dankbar. Wenn ihr Code-Ausschnitte benötigt, poste ich die gerne.

Vielen Dank!
Brennpunkt

Geändert von Brennpunkt (23.09.2009 um 15:44 Uhr)
Mit Zitat antworten
  #6 (permalink)  
Alt 24.09.2009, 16:42
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 14.03.2009
Beiträge: 29
labbixenja befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Brennpunkt Beitrag anzeigen
Das verstehe ich nicht. "neue_seite.jpg" in der cmbasic.css als Standardbild angeben oder ein Bild mit diesem Namen im Logo-Ordner ablegen? Funktioniert es damit?
Es muss halt für jede Seite ein entsprechendes Bild im Logo-Ordner sein. Dabei ist das aber mit der Startseite ein Problem. Ich habe das dann so gelöst:

Logo Ordner anlegen (haste bestimmt schon)
Bild für die Startseite = banner.jpg (siehe code unten)
Bild für die 2. Seite = bannerseite2.jpg
Bild für neue_seite = bannerneue_seite.jpg

WICHTIG ist das der Bildname immer mit Namen des Bildes von der Startseite beginnt.

dann wie von Hanke beschrieben die Abfrage

Code:
url(logo/banner{$_SERVER['QUERY_STRING']}.jpg);
bei der Startseite zu keinem Ergebnis führt, bleibt dann zumindest "banner" stehen und er nimmt das als Hintergrundbild banner.jpg

So funktioniert der Trick bei CMbasic eben doch und brauchst Du deswegen kein anderes CMS zu suchen. Im überigen bin ich (immer noch) total begeistert von CMBasic

Gruss Labbixenja
Mit Zitat antworten
  #7 (permalink)  
Alt 24.09.2009, 20:49
Neuer Benutzer
neuer user
 
Registriert seit: 22.09.2009
Beiträge: 6
Brennpunkt befindet sich auf einem aufstrebenden Ast
Standard Es funktioniert!

Mein Held! (oder meine Heldin!)
Vielen herzlichen Dank, Labbixenja. Es funktioniert! Grandios.
Allerdings weiß ich nicht, warum.

1.
Code:
url(logo/banner{$_SERVER['QUERY_STRING']}.jpg);
Die Folge url(logo/banner [...] müsste doch eigentlich auf einen Unterordner Namens "banner" im Logo-Ordner verweisen, oder?

2. Unten habe ich Kurzzusammenfassung für alle mit diesem Problem geschrieben, die ist doch so korrekt, oder?

3. Den Unterstrich habe ich nicht benötigt (in deinem Beispiel "bannerneue_seite.jpg". Wofür ist der Unterstrich?

4. Was hast Du noch an Deinem CMBasic geändert?

5. Dir ist bewusst, dass ich Dich nun mit weiteren Fragen nerven werde, oder?

Noch mal vielen, vielen Dank und einen traumhaften Abend.
Brennpunkt



Kurzzusammenfassung für alle mit diesem Problem:

1. Diese Zeile in der index.php um das Wort "banner" erweitern:
Code:
url(logo/banner{$_SERVER['QUERY_STRING']}.jpg);
2. Im Logo-Ordner:
Das Bild für den ersten Aufruf der Webseite ("www.webseite.de/) in "banner.jpg" umbennen.

3. Ebenfalls im Logo-Ordner:
Vor den Namen der anderen Bilder das Wort "banner" setzen (Kurz: "banner" + URL-Anhang). Beispiele:
- Das Bild für "webseite.de/?impressum" in "bannerimpressum.jpg" umbenenen.
- Das Bild für "webseite.de/?kontakt" in "bannerkontakt.jpg" umbenennen.

4. Eure Webseite Aufrufen und freuen, für jede Webseite ein eigenes Foto zu haben.
Mit Zitat antworten
  #8 (permalink)  
Alt 25.09.2009, 18:57
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 14.03.2009
Beiträge: 29
labbixenja befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Brennpunkt Beitrag anzeigen
Allerdings weiß ich nicht, warum....
Ist doch ganz einfach:

Die Abfrage
Code:
{$_SERVER['QUERY_STRING']}
kommt bei der Startseite von CMbasic zu keinem Ergebnis, da ja kein "Seitenname" vorhanden.

In dem ich z.B das Wort banner davor setze (oder jedes andere beliebige Wort) kommt dann

banner + (abfrage {$_SERVER['QUERY_STRING']}=nix) im Ergebnis ' banner ' sprich banner.jpg raus! Das ist das ganze Geheimnis.

Da ja nun das Wort banner immer da steht, muss folglich dem Bildnamen, der ja bekanntlich aus dem Seitennamen besteht, auch das Wort "banner" oder "dein eigenes Wort" vorangestellt werden.

Gruss Stefan
labbixenja (Held wäre übertrieben -Unsere Labradorhündin heisst Xenja, daher der Name)
Mit Zitat antworten
Antwort

Stichwörter
background-image

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Inline Listenelement wird nicht richtig im background befüllt SteveB CSS 3 28.04.2011 21:41
Float - Probleme wolf1985 CSS 5 19.08.2008 09:14
Footer left und right Probleme... wolf1985 CSS 2 14.08.2008 14:04
Mozilla zeigt DIV zu oft an cracki CSS 6 09.03.2008 16:22


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:46 Uhr.