Beim Überschreiben reagiert es nicht mehr

lisali

Erfahrenes Mitglied
Hallo,

ich habe eine Hintergrunddatei, die ich beim Mouseover positionsmäßig ändern möchte mit folgendem style:

Code:
a#doing {background-image:url(images/icon/doing.png); width:23px; height:22px; display: inline-block; float:left}
a:hover#doing {background-position: 5px 6px;}

Wenn ich im HTML jetzt nur
HTML:
<a id='doing'></a>
eingebe, klappt das auch alles, aber ich bin sozusagen dazu gezwungen ein style='......' reinzufügen, weil ich variable Daten mittels PHP verwende, um die background-position anzugeben.

Ich verstehe nur nicht wieso er dann nicht mehr auf das Mouseover reagiert, nur weil ich ein style='...' hinzugefügt habe.

Jedenfalls reagiert er nicht so, dass er das Bild ändert.

WEnn ich aber bei a:hover#doing zum Testen ein "background: red" einfüge, funktioniert es. Er macht halt nur nicht das Bild so wie ich es möchte.

Kann mir da jemand helfen?
 
Code:
<a class="fbox" title="Statuszeichen &auml;ndern" href='input.php?case=status&uid=<? echo $_SESSION['id']; ?>' 
        id="doing" style="background-position: -<? echo $px; ?>px 0"></a></li>
 
Ist da nicht ein "px" zuviel? Oder das Zweite sitzt an der falschen Stelle.

Nee, quatsch, "px" heißt hier die glückliche Variable :-)

Und wie soll dir nun die Formatierungssprache bei deinem Problem mit einer (PHP-Script) Variablen behilflich sein?

mfg Maik
 
Nee, das ist nämlich kein PHP-Problem. Wenn ich die ganzen PHP-Dinger weglasse und es z.B. mit

"background-position: -23px 0px;" ersetze, passiert auch nichts.
 
Jo, du begehst hier auch einen gehörigen Denkfehler, denn die Pseudoklasse :hover holt sich deine gewünschte Formatierung nicht aus dem style-Attribut des jeweiligen Elements, weil sie mit diesem HTML-Attribut schlichtweg und grundsätzlich nicht "kommuniziert", zwischen ihnen findet kein Datenaustausch oder ähnlich gelagertes statt.

Ihre CSS-Regeln müssen im Anschluß an den Selektor in seinem Deklarationsblock folgen, so wie du es eingangs auch gezeigt hattest.

"Grundlagen pauken" kann ich da nur empfehlen.

http://edition-w3c.de/TR/1998/REC-CSS2-19980512/

mfg Maik
 
Das verstehe ich jetzt nicht so ganz? Gibt es dafür denn keine Möglichkeit, um mein Problem zu lösen?
 
Weil du es nicht verstehst, hab ich eben auch meine Empfehlung incl. Link zur offiziellen CSS-Spezifikation (deutsche Übersetzung) ausgesprochen, dich mal etwas näher mit den Grundlagen der Formatierungssprache vertraut zu machen.

mfg Maik
 
Gibt es dafür denn keine Möglichkeit, um mein Problem zu lösen?
Sicherlich.

Hast du schon mal in Betracht gezogen, deinen PHP-Code anstelle des style-HTML-Attributs im zentralen Stylesheet (CSS-Datei) anzuwenden?

Oh ja, auch das ist technisch möglich, und sollte dein Problem mit der variablen Hintergrundbild-Position für die :hover-Pseudoklasse aus der Welt räumen ;-)

PHP in CSS / DSS - Dynamic Style Sheet

mfg Maik
 
Tut mir Leid, da hattest du deinen Beitrag noch nicht editiert.

Ja, das werde ich machen... aber bist du so lieb und sagst mir vielleicht, ob es überhaupt einen Weg gibt das zu lösen?

Edit: Vielen Dank, das ist genial!
 
Zuletzt bearbeitet:
Zurück