• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

zuweisen von css zeigt keinerlei Wirkung

andynail

Mitglied
Hallo zusammen

das zuweisen einer css Klasse durch angabe von class in einem Link zeigt keinerlei wirkung.

Das Ganze hier zu zeigen ist etwas kompliziert, aber ich versuchs mal:

1. in einer php Datei wird die Seite aufgebaut und es wird entschieden welches css genommen werden soll:

if ($Sub == "1")
{
$Img = "<a href='#' class='Button'><div style='background-image:url(Pictures/Sub.png); width:30px; height:30px; margin-left:5px; margin-top:5px; float:left' onclick='ShowSubLinks($ID)'></a></div>";
$Class = "class='Sub'";
}

echo "$Img<a oncontextmenu='ActiveLink = this; LinkObjektePositionieren(\"LinkMenue\", self.id); PageMenuesShow(\"LinkMenue\")' onclick='$Befehl1 $Befehl2 $Befehl3' $Url id='$ID' Text='$Text' $Infos $Daten $DateiLink $Link $Class>$Anzeige</a>";

Und in diesem Fall soll dieses Bild, da es eine Funktion enthält, auch einen hover Effekt bekommen.

2. Die Zeilen in der ausgelagerten css Datei lauten:

a.Sub { font-family: 'Times New Roman'; font-size:18px; color:#000; text-decoration: none; padding-left:50px; padding-right:20px; vertical-align:middle; display:block; outline: none; line-height:50px; }
a.Sub:hover { background-image:url('Pictures/Linkauswahl.jpg'); background-repeat:repeat-x; background-color:#66fbfb}
.Button { margin-right:10px; }
.Botton:hover { background-image:url('Pictures/Linkauswahl.jpg'); background-repeat:repeat-x; background-color:#66fbfb}

Aber egal was ich in der css Datei ändere, es ändert sich nix!

Also was mache ich bitte falsch?

Danke Gruß Andreas
 
Zuletzt bearbeitet:
Also was mache ich bitte falsch?
Das erste was Du falsch machst, Du benutzt keine Code-Tags! Einfach gräßlich zum Lesen.

Das nächste was Du falsch machst, dass es hier relativ egal ist, wie Du in PHP irgendwelche Variablen aufbaust, interessanter ist, wie die ausgegebenen Variablen im HTML-Quelltext aussehen.

Dann ist vermutlich falsch, dass Du zwar in Deiner externen CSS-Datei Werte für a.Sub usw. setzt, diese Klasse aber in dem Codeschnippsel dem <a>-Tag nicht zuweist.

Gerade bei HTML- und CSS-Fragen ist es aber immer sinnvoll, statt dem Code den Link zur Problem-Seite zu posten, dann kann Dir am Besten geholfen werden.
 
Der dritte Fehler ist, lange HTML-Strings in PHP auszugeben. Leserlicher wäre es so:

HTML:
<?php $my_style = $Sub === 1 ? "class_1" : "class_2"; ?>

<div class="<?php echo $my_style>">.....</div>

Im Stylesheet legst du dann die Werte für .class_1 und .class_2 fest.

Außerdem schreibt man die JavaScript-Eventhandler nicht direkt ins HTML, sondern in Form von EventListenern an den Fuß der Seite - oder verlinkt dort eine externe JS-Datei. Das ist wesentlich einfacher, übersichtlicher und kürzer.
 
Hallo themmy

ok auf diese Seite kann ich nicht verlinken. Sie existiert nur auf meinem usb Stick.

Und klar verlinke ich im code auf die Klasse:
Ich schreibe ja in php $Class = "class = 'Sub'"; und schreibe dann in der Zeile zum Aufbau die Variable $Class und schreibe das so da eine Klasse nicht immer benötigt wird.

Danke Gruß Andreas
 
Moin Andreas,

das kommt davon :-D Da Du in Deinem Post keine Codetags gesetzt hast, habe das irgendwie übersehen, dass da noch die Ausgabe mittels echo passiert. Trotzdem, der fertige Seitenquelltext wäre besser, als das Zusammengestückel in PHP, zumal in der Ausgabe eine Menge Variablen ausgegeben werden, die hier nicht definiert sind. Keine Ahnung, ob diese dann evtl. auch schon Fehler enthalten und der Aufbau Deiner Ausgabe dann fehlerhaft ist. Also ohne HTML-Quelltext wird hier sicher keine kompetente Hilfe gegeben werden können.

Da ich selber auf verschiedenen PCs entwickel, habe ich meine Website incl. Webserver auch auf dem USB-Stick. Aber wenn ich eine Frage bezüglich HTML und/oder CSS habe, dann lade ich das ganze auf Free-Webspace hoch und verlinke das ganze im Forum.
 
Zurück
Oben