Probleme zwischen HTML/CSS/PHP

Status
Nicht offen für weitere Antworten.

Jennesta

Erfahrenes Mitglied
Hallo,
erstmal Entschuldigung falls es hier nicht im richtigen Themenbereich ist, wusste nicht wozu es besser passt.

Also habe folgendes Problem. Im folgenden Skript, welches ich mal komplett isoliert habe und nur als html-Datei anwende, habe ich versucht eine Navigation zu machen. Solange dieser Code isoliert ist von allem anderen (vom php usw) klappt es genauso wie ich es möchte und ein bisschen verändert hier zu finden ist (etwa in der Mitte):
http://css.fractatulum.net/sample/hov2format2.htm
Sobald ich diese Tabelle aber in eine PHP-Datei schreibe, klappen die Hintergrundbilder nicht mehr, Pfade habe ich getestet (mehrmals) und die Syntax auch. Wenn ich in der CSS-Datei jedoch statt dem Hintergrundbild eine Hintergrundfarbe angebe, dann funktioniert es, wie erwünscht.

Hier erstmal der html-Code:
Code:
<html>
	<head>
		<title>New Document</title>
		<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
		<link rel="stylesheet" type="text/css" href="test.css" />
  	</head>
  	<body>
		<link rel="stylesheet" type="text/css" href="styles/page.css" />
	<table>
		<tr>
			<td><a href="#" class="block">Startseite</a></td>
		</tr><tr>
			<td><a href="#" class="block">News</a></td>
		</tr><tr>
			<td><a href="#" class="block">&Uuml;ber Mich</a></td>
		</tr>
	</table>
  	</body>
</html>

CSS:
Code:
a.block {
color:#E5E5E5;
background:url(../Homepage/images/gen/bg1.jpg); 
display:block; 
text-align:center; 
width:150px;
border:black solid 1px; 
padding:2px; 
text-decoration:none; 
font:bold 14px arial, sans-serif; }
a.block:hover {
color:#E5E5E5;
background:url(../Homepage/images/gen/bg2.jpg); }

Und das ganze in PHP sieht eig nur mit '<?php echo" ' vor dem ganzen und am ende ' " ?>' aus. Ich persönlich habe dies noch mit "\n" strukturiert usw aber das wollte ich nicht auch noch posten.

Vielleicht könnt ihr mir ja auf die Sprünge helfen, denn ich weiß nicht wieso das ganze nicht funktioniert. Für eine andere Idee bin ich auch offen, wie dies zu bewerkstelligen ist.

mfg Jennesta
 
mit
echo ' deinhtml ';
müsste es gehen. bei
echo " deinhtml ";
sollte ein parse error kommen.
füg vllt noch einen doctype ein, wobei das eigentlich keinen unterschied machen sollte, wenn es so funktioniert. wenn das nicht holft, poste mal deinen php code
 
Ist nen bisschen viel, aber wenn du ihn sehen wilst ;)

PHP:
<?php
	//index.php
	include "config.php";
	error_reporting(E_ALL);
	echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n";
	echo "<html>\n";
	echo "	<head>\n";
	echo "		<title>Philipps Homepage</title>\n";
	echo "		<meta http-equiv=\"content-type\" content=\"text/html; charset=iso-8859-1\">\n";
	echo "		<link rel=\"stylesheet\" type=\"text/css\" href=\"styles/index.css\" />\n";
	echo "		<link rel=\"stylesheet\" type=\"text/css\" href=\"styles/page.css\" />\n";
	echo "  	</head>\n";
	echo "  	<body id=\"index\">\n";
	echo "		<div id=\"bigrect\">\n";
	echo "			<div id=\"left\"></div>\n";
	echo "			<div id=\"middle\">\n";
	echo "				<div id=\"above\">\n";
	echo "					<div id=\"banner\">B-A-N-N-E-R</div>\n";
	echo "				</div>\n";
	echo "				<div id=\"below\">\n";
	echo "					<table id=\"maintable\">\n";
	echo "						<tr>\n";
	echo "							<td width=20%>\n";
	include "navi.php";
	echo "							</td>\n";
	echo "							<td class=\"left\">\n";
	include "content.php";
	echo "							</td>\n";
	echo "						</tr>\n";
	echo "					</table>\n";
	echo "				</div>\n";
	echo "			</div>\n";
	echo "			<div id=\"right\">\n";
	echo "				<div id=\"infobox\">c</div>\n";
	echo "				<div id=\"imp\">Impressum</div>\n";
	echo "			</div>\n";
	echo "		</div>\n";
	echo "  	</body>\n";
	echo "</html>\n";	
?>

dort wo die navi.php included wird kommt also das

PHP:
<?php
echo "	<table>\n";
echo "		<tr>\n";
echo "			<td><a href=\"#\" class=\"block\">Startseite</a></td>\n";
echo "		</tr><tr>\n";
echo "			<td><a href=\"#\" class=\"block\">News</a></td>\n";
echo "		</tr><tr>\n";
echo "			<td><a href=\"#\" class=\"block\">&Uuml;ber Mich</a></td>\n";
echo "		</tr>\n";
echo "	</table>\n";
?>

Bin mal gespannt ob du was findest ;) danke schonmal - allein für die Bemühungen.
Achja und sag nichts wegen der Div-Suppe, ich weiß es ist mist, aber besser habe ich es erstmal nicht hinbekommen.

Jennesta

P.S.: Wieso sollte ich einfache Anführungszeichen verwenden? ok wenn ich überlege ists einfacher, weil ich die doppelten nicht dauernd escapen muss, aber hat es einen anderen weiter Sinn?
 
Zuletzt bearbeitet:
Dass die Bilder nicht angezeigt werden, kann in diesem Fall nur daran liegen, dass die Pfadangaben nicht korrekt sind.
Code:
../Homepage/images/gen/bg1.jpg
ist eine relative Pfadangabe zur Zieldatei ausgehend von der css-Datei. Aufgeschlüsselt für
<link rel="stylesheet" type="text/css" href="styles/index.css" />, welche anscheinend aufgerufen werden kann, heißt das, dass eine Ebene hochgesprungen wird (Verzeichnis über /styles), dann in das Verzeichnis /Homepage (selbe Ebene wie styles und dann in das Verzeichnis images und dann in gen gewechselt wird. Zuletzt wird dann versucht, bg1.jpg zu aufzurufen.
Mag mich irren, aber ich vermute mal, dass Homepage dein Ursprungsverzeichnis ist, also die Ordnerhirarchie in etwa so aussieht:
Code:
/Homepage
    /page.php
    /styles
        /index.css
        /page.css
    /images
        /gen
            /bg1.jpg
            /bg2.jpg
    /...

Oder doch so, wie es im Quelltext angegeben ist? Kann schließlich auch sein, dass ich das Problem an der falschen Stelle sehe.

Code:
/docs
    /page.php
    /styles
        /index.css
        /page.css
    /Homepage
        /images
            /gen
                /bg1.jpg
                /bg2.jpg
    /...
 
Ich sehe auf den ersten Blick nichts, was aber eventuell auch durch die Uhrzeit bedingt ist.
Aber: Hast du drauf geachtet, dass die Hintergrundbilder relativ zur CSS-Datei gesetzt werden?
Wenn dein Browser das kann (Firefox kann es z.b.): klick mal mit rechts auf den Link und wähle "Hintergrundgrafik anzeigen" aus. Wenn die 404s nicht irgendwie weitergeleitet werden, kannst du so herausfinden, unter welcher URL das Bild gesucht wird
 
Zuletzt bearbeitet:
Hi,
Wenn ich in der CSS-Datei jedoch statt dem Hintergrundbild eine Hintergrundfarbe angebe, dann funktioniert es, wie erwünscht.
in diesem Fall würde ich zunächst mal auf einen falsch gesetzten Grafikpfad tippen.

Gibt es evtl. eine Online-Version der Seite, um dort einen Blick drauf werfen zu können?

@Matonor: Bitte halte dich an die Netiquette bzgl. deiner durchgehenden Kleinschreibung. Vielen Dank.
 
Hallo,
also der Grafikpfad, den ich gepostet habe war tatsächlich falsch, aber auch nur weil dieser CSS Code aus einer anderen Datei kopiert wurde, womit ich das ganze getestet habe demnach aus der TestHp, wo die Css direkt drinnen lag, und somit habe ich weil das ganze in php nicht klappt einfach die Style kopiert und nur das Verzeichnis Homepage/ hinzugefügt..
also aufgebaut wars so:
Code:
/TestHp
/CSS-Datei
/Homepage
/styles
/page.css
/index.css
/mages
/bg1.jp
/bg2.jpg
/index.php

Aber meiner Meinung nach habe ich dennoch die richtigen Pfade angegeben, kann mich auch irren (aber wenn wäre sehr komisch (und peinlich) weil habe mind. fünf mal danach geguckt).
Aber wie auch immer, es funktioneirt jetzt plötzlich...
was weiß ich wieso auf einmal. :confused:

Aber eine Version zu amschaun gibts dennoch auf http://jennesta.anime-wars.de/Homepage1/
Nebenbei ist die Fehlermeldung nur da, weil ich bisher keien Lust hatte vor der Navi iwas mit dem Content zu ändern ;). Außerdem stimmt die Ausrichtung zum derzeitigen Standpunkt nicht.
Wie aussehen sollte ist hier http://jennesta.anime-wars.de/index.html
 
Zuletzt bearbeitet:
Status
Nicht offen für weitere Antworten.
Zurück