css hover effekt geht nicht...warum?
Ich bin gerade am html/css/php lernen und bin auf ein total simples Problem gestoßen, welches ich aber bei bestem willen nicht gelöst bekomme.
Die Pseudoklasse :hover will einfach nicht tun....
Das ist die style.css.
.navigation_schrift{
display:block;
float:left;
text-align: center
font-family: courir;
font-size:150%;
width: 100%;height:40px;
color: red;
background-image: url("../images/aquabutton1.gif");
margin: 0px 0px 3px 0px;
text-decoration:none;
}
.navigation_schrift:hover{
color: green;
}
und so wird das ganze aufgerufen:
TesttextAlles andere was ich über CSS mache funktioniert einwandfrei (wenn ich es richtig gemacht habe :D)
Warum wechselt die Schriftfarbe bei mouseover nicht auf grün?
Ich habe sowohl Firefox 5.0.1 als auch IE9 versucht...
Gruß BluBb_mADe
6 Antworten
Soweit ich weis, ist :hover nicht alleine einer CLASS zuordnungsfähig, es muss der HTML-Tag angegeben sein.
div.navigation_schrift:hover{
color: green;
}
mit dem div-Container zusammen sollte das dann funktionieren.
Hi. Mein Beitrag zur Klärung / Ergänzung:
Steffile geht wahrscheins davon aus, dass es vor allem Sinn macht, Links bzw. "Anker" mit :hover zu bestücken. Und weil das Anker-Element in HTML mit "a" notiert wird, kam wohl der Vorschlag.
.navigationschrift a wäre irgend ein Link in einem klassifizierten Element (zB "DIV", "UL" oder "LI"), welches die Klasse navigationschrift hat.
<div class="navigationschrift" style="…irgendwas…">
<a id="zuFormatierenderAnker">Linkt-Text</a>
</div>
Dabei wäre es egal, wie tief die Schachtelung gehen muss, bis das "A"-Element angesprochen wird. Jedenfalls macht das Leerzeichen in diesem Vorschlag Sinn.
Um ein "A"-Element direkt eine Ebene unterhalb von ".navigationschrift" anzusprechen, müsste es so notiert werden:
.navigationschrift>a {
…irgendwelche Styles für normale Links
} /* oder auch mit Leerzeichen, das ist egal */
.navigationschrift > a:hover {
color: green;
}
Dein Vorschlag a.navigationschrift würde bedeuten, dass das "A"-Element selbst die Klasse "navigationschrift" hat. Klasse und Element sind also "auf gleicher Ebene". Das Beispiel von Steffile hingegen hat mit Vererbung zu tun, dem Grundkonzept von CSS.
a.* oder a.[Leerzeichen] können nicht funktionieren, weil dies zwei Zeichen sind, mit denen eine CSS-Klasse nicht beginnen darf.
So. Jetzt mal was GANZ anderes…:
Es kann in bestimmten Fällen dazu kommen, dass :hover ignoriert wird, wenn die Reihenfolge der Notaton von Pseudoklassen nicht eingehalten wird. Diese ist:
:link – :visited – :focus – :hover – :active
siehe dazu auch http://de.selfhtml.org/css/eigenschaften/pseudoformate.htm#link_visited_focus_hover_active
Sauber, DH! War auch für mich noch an einer Stelle lehrreich. Ich bedanke mich auch. :-)
Bei meinem a.* war das "*" nur als Platzhalter für die nachfolgende Class gedacht :D
Das da kein Leerzeichen stehen darf is auch mir klar.
Mit Leerzeichen meinte ich nur das Leerzeichen hier:
.navigationschrift a:hover
(Leerzeichen lassen sich so schlecht fett darstellen ;-))
Das GANZ andere is auch GANZ wichtig!
Danke dafür!
Ah jetzt ja! …Eine Insel… Dann wären ja alle Klarheiten beseitigt und alle sind glücklich :-)
du hast aber noch einen fehler: "text-align: center" muss "text-align: center;" sein
xD jaa das ist dieser komische codeblock von GF gewesen
Hi BluBbmADe! :) (toller Name!:)
Erstens: "font-family: courir" -> Bessere diesen Punkt in "courier" aus.Fehler verzeiht CSS nicht ;)
Zweitens: "text-align: center" -> Vergiss niemals mit ";" abzuschließen, sonst "rechnet" das Stylesheet weiter ohne den Befehl auszuführen!
Drittens: das "text-decoration: none;" weglassen.
Die Hover-Funktion stimmt soweit. Viel Glück und gib bescheid ob es geholfen hat!
:)
Die Fontfamlily funktioniert einwandfrei ...?
warum drittens?
Ich will keine Textdecoration...
versuchs mal mit .navigationschrift a & .navigationschrift a:hover, d.h. benutz a.
was meinst du mit a?
a.navigationschrift?
leerzeichen werden gar nicht akzeptiert...
a.* wird auch nicht akzeptiert ... es wäre nett wenn du dich genauer ausdrücken könntest, da die aus deiner antwort resultierenden möglichkeiten doch sehr viel interpretationsspielraum lassen
Jetzt funktioniert es.
Warum das weder auf SelfHTML noch in verschiedenen Tutorials erwähnt wird ist mir schleierhaft.
Vielen Dank!