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

Probleme mit CSS MouseOver im IE

Status
Für weitere Antworten geschlossen.
Der IE6 ist der älteste, noch stark verbreitete Browser.
Er wendet :hover nur auf das a-Tag an. Ab IE7 ist das Behoben.
Code:
#content_navi ul li:hover
Wenn du background-image <a> zuweisst funktioniert es auch im IE6 und IE5.
Das Element fehlt in deinem html-Quelltext noch.
<a> erhählt seine Breite durch den Inhalt. Um das zu ändern kannst du ihm display: block geben.
Dann kannst du <a> genauso wie Blockelemente (<li>) gestalten.
Code:
#content_navi ul li a {
background-image: url(images/gardient_1.jpg);
background-repeat: repeat-y;
display: block;
...
...
}

#content_navi ul li a:hover {
background-image: url(images/gardient_3.jpg);
}
Vermutlich wird mit dem Einfügen von <a> noch ein weiterer Bug im IE6 zuschlagen.
Dann noch mal nachfragen.
 
Zuletzt bearbeitet:
schaus dir jetzt bitte mal eben an!

jetzt hab ich es so gemacht und nun gibt es gar keinen hover effekt mehr :(
 
Auch nach dem ich alle verdächtigen Styles entfert habe, konnte ich den Fehler nicht finden.
Nach dem ich das css ohne deine Vorlage neu geschrieben habe ging es aber:
Code:
#content_navi {
background-image: url(http://hitrix.pytalhost.de/images/gardient_2.jpg);
width: 136px;
float: left;
}
#content_navi ul {
margin: 0;
padding: 0;
list-style: none;
}

#content_navi ul li {
margin-top: 1px;
}

#content_navi ul li a {
padding-top: 6px;
padding-bottom: 6px;
display: block;
font-size: 9px;
display: block;
text-decoration: none;
text-align: center;
font-family: Verdana;
color: #3A3A3A;
background-image: url(http://hitrix.pytalhost.de/images/gardient_1.jpg);
}

#content_navi ul li a:hover {
background-image: url(http://hitrix.pytalhost.de/images/gardient_2.jpg);
background-position: center;
}
Auf die Höhenangaben habe ich verzichtet, da sie bei Schriftvergrößerungen stören.
Anstelle dessen habe ich padding-top und padding-bottom für <a> verwendet.
Die Navigation wächst so vertikal mit der Schriftgröße.

Für den IE6 solltest du im html vielleicht noch Leerzeichen am Ende des Anchortext setzen. Könnte einen sonst einen Bug im IE6 geben.
Code:
<li><a href="#">Aufgaben und Ziele </a></li>
(Ein Leerzeichen hinter "Ziele")

Kannst es ja mal vergleichen. Vielleicht findest du den Fehler selber.
Wer nett wenn du ihn dann hier reinschreibst.
 
Zuletzt bearbeitet:
den Fehler habe ich immernoch nicht gefunden ...

Habe jetzt deinen Code genommen doch irgendwie sieht das Ganze im IE ganz komisch aus und im Firefox ist die schrift nicht in der Mitte der Buttons! Wenn ich ein padding-Top: 5px; z.B. einbaue dann wird der Komplette Button größer, was ich ja eigentlich nicht haben möchte!
 
Gucke dir das mal an:
Liste1 Navigation
Die Grafiken habe ich mir nicht kopiert. Sie werden von deiner url geladen.
Wenn du das nicht möchtest lösche ich die Datei wieder.

Isoliere deine Navigation mal in einem neuen Dokument.
Wenn es da passt füge nach und nach die anderen Style Sheets ein.
So kannst du sehen ob noch andere style-Anweisungen stören.
 
irgendwie kann ich das Problem nicht näher eingrenzen!

Habe es jetzt hinbekommen das es so aussieht:

IE http://img294.imageshack.us/img294/9168/75560692ge7.jpg
Firefox http://img294.imageshack.us/img294/7079/80926543qg9.jpg

2 Sachen die mir nicht gefallen...

1) Im IE sind die "margin-top: 1px;" irgendwie breiter als 1px :(
2) Die Schrift sitz im IE und im Firefox nicht in der Mitte des Buttons trotz "line-height: normal;" wenn ich padding-top und padding-bottom verwende, werden die Buttons größer und die Schrift sitzt trotzdem nicht in der Mitte

Dazu auch ein Screenshot:

http://img295.imageshack.us/img295/2928/60899856ys5.jpg

Langsam verzweifel ich noch an dem Krams :evil:

Vielen Dank übrigens schon mal für deine Hilfe und deine Bemühungen find ich Klasse !
 
line-height

line-height: normal; kannte ich noch gar nicht. Gibt es das überhaupt?
line-height sollte immer nur in numerischen Werten ohne Einheit angegeben werden.
Code:
line-height: 1.5;
bedeutet eineinhalb mal so großer Zeilenabstand wie Die Texthöhe.
Es ist nur für den Zeilenabstand gedacht.

Da sich line-height vererbt, kann ein unsachgemäßer Gebrauch sich auf die ganze Seite auswirken.
Zurücksetzen lässt sich line-height mit:
Code:
line-height: 1;
Entferne line-height am besten für alle Elemente in denen du es nicht brauchst.

Wenn ich auf deiner Seite height für #content_navi ul li a weglasse, passte es im Firefox.
Die Höhe der Listenpunkte kannst du mit den padding-Werten für #content_navi ul li a ändern.
 
Auch nach dem ich alle verdächtigen Styles entfert habe, konnte ich den Fehler nicht finden.
Nach dem ich das css ohne deine Vorlage neu geschrieben habe ging es aber:
Code:
#content_navi {
background-image: url(http://hitrix.pytalhost.de/images/gardient_2.jpg);
width: 136px;
float: left;
}
#content_navi ul {
margin: 0;
padding: 0;
list-style: none;
}
 
#content_navi ul li {
margin-top: 1px;
}
 
#content_navi ul li a {
padding-top: 6px;
padding-bottom: 6px;
display: block;
font-size: 9px;
display: block;
text-decoration: none;
text-align: center;
font-family: Verdana;
color: #3A3A3A;
background-image: url(http://hitrix.pytalhost.de/images/gardient_1.jpg);
}
 
#content_navi ul li a:hover {
background-image: url(http://hitrix.pytalhost.de/images/gardient_2.jpg);
background-position: center;
}
Auf die Höhenangaben habe ich verzichtet, da sie bei Schriftvergrößerungen stören.
Anstelle dessen habe ich padding-top und padding-bottom für <a> verwendet.
Die Navigation wächst so vertikal mit der Schriftgröße.

Für den IE6 solltest du im html vielleicht noch Leerzeichen am Ende des Anchortext setzen. Könnte einen sonst einen Bug im IE6 geben.
Code:
<li><a href="#">Aufgaben und Ziele </a></li>
(Ein Leerzeichen hinter "Ziele")

Kannst es ja mal vergleichen. Vielleicht findest du den Fehler selber.
Wer nett wenn du ihn dann hier reinschreibst.

ja, genau entweder du machst es über eine liste, mit bildern oder mit a: hover, usw.

Bei bildern würde der quelltext wie folgt aussehen:
<A HREF="deineseite.html"><img src="ursprungsbild.gif" alt="" onmouseover="img:src='mouseoverbild.gif'"
onmouseout="img:src='button_home.gif'" title="dein titel" border="0" height="55px" width="150px">

in href="" wie du sicher schon weißt, schreibst du die zu ladende seite rein, img src="" dein bild, was am anfang da ist. Dann bei onmouseover="img:src=' '" das bild, was das mouseover anzeigen soll, und bei onmouseout, dass was nach dem überfahren mit der maus wieder ausgegeben werden soll. Hierfür verwendet man meistens wieder das ursprungsbild.

Eine zweite möglichkeit ist mit a: und den ganzen befehlen:
a:link { text-decoration:none; font-weight:none; background-color:white; }
a:hover { text-decoration:none; font-weight:bold; background-color:#330000; }
a:active { text-decoration:none; font-weight:bold; background-color:white; }
a:visited { text-decoration:none; font-weight:bold; color:#747474; }

a:link steht für die noch nicht besuchten seiten, a:visited für die bereits besuchten seiten, a:hover für den mouseover effekt, a:active für das anklicken, und a:focus für das auslösen per tastatur. Mit backgroud-color gibst du eine hintergrundfarbe an, die ausgegeben werden soll. Angabe nach RGB farbensystem.

Beides habe ich auf meiner hp eingebaut und funktioniert auch über IE.

Eine dazu nützliche selfhtml seite wäre: SELFHTML: HTML/XHTML / Verweise (Links) / Verweise definieren und gestalten

Jetzt kann ich nur noch sagen, ausprobieren. Wenns dir noch nicht gefällt, einfach ein wenig mit den quelltext rumprobieren, bei html kann man nicht viel falsch machen :wink:
 
line-height: normal; kannte ich noch gar nicht. Gibt es das überhaupt?
line-height sollte immer nur in numerischen Werten ohne Einheit angegeben werden.
Code:
line-height: 1.5;
bedeutet eineinhalb mal so großer Zeilenabstand wie Die Texthöhe.
Es ist nur für den Zeilenabstand gedacht.

Da sich line-height vererbt, kann ein unsachgemäßer Gebrauch sich auf die ganze Seite auswirken.
Zurücksetzen lässt sich line-height mit:
Code:
line-height: 1;
Entferne line-height am besten für alle Elemente in denen du es nicht brauchst.

Wenn ich auf deiner Seite height für #content_navi ul li a weglasse, passte es im Firefox.
Die Höhe der Listenpunkte kannst du mit den padding-Werten für #content_navi ul li a ändern.


Wow klasse !!! :) immerhin stellt der gute Firefox es jetzt richtig dar! line-height:1 ; wars wohl aber der IE stellt margin-top: 1px; falsch dar...

die Spalten sehen dort so aus, wie auf dem Screenshot: http://img294.imageshack.us/img294/9168/75560692ge7.jpg
 
Nee, das liegt nicht an margin-top.
Das ist auch wieder so ein IE-Bug (Ich weiß immer nicht wie die heißen).
Gebe <li> display: inline; dann ist dieser komische Abstand weg. Da <a> display: block; hat werden die Links trotzdem untereinander angezeigt.
Mit display: inline; funktioniert margin aber nicht mehr. margin-top habe ich deshalb <a> zugewiesen. Den unteren Abstand habe ich mit padding-bottom für <ul> erzeugt damit auch die untere Linie durchscheint.
Die untere Linie habe ich in meinem ersten Beispiel einfach vergessen.
Code:
#content_navi {
    background-image: url(http://hitrix.pytalhost.de/images/gardient_2.jpg);
    width: 136px;
    float: left;
    }
                
#content_navi ul {
    list-style: none;
    padding: 0;
        [COLOR=DarkRed]padding-bottom: 1px;[/COLOR]
    margin: 0;
        }

#content_navi ul li {
        [COLOR=DarkRed]display: inline;[/COLOR]
        }
    

#content_navi ul li a {
        [COLOR=DarkRed]margin-top: 1px;[/COLOR]
    display: block;
    font-size: 9px;
    display: block;
    text-decoration: none;
    text-align: center;
    font-family: Verdana;
    color: #000000;
    background-image: url(http://hitrix.pytalhost.de/images/gardient_1.jpg);
    width: 136px;
    line-height: 1;
    padding-top: 7px;
    padding-bottom: 7px;
        }
        
#content_navi ul li a:hover {
    background-image: none;
    background-color: #FFFFFF;
        }
Funktioniert jetzt sogar mit IE5 :-)
 
Zuletzt bearbeitet:
Dachte ich mir auch schon, Dreamweaver hat mir das so ausgespuckt, wieso sollte es dann falsch sein :P
 
Dachte ich mir auch schon, Dreamweaver hat mir das so ausgespuckt, wieso sollte es dann falsch sein :P
Ja nee, is klar, Software hat auch nie Bugs, siehe Internet Exploder. Das perfekte Programm.
Sorry, aber das war ein echter Brüller ;-)

Grüße,
-Efchen
 
Jedenfalls scheint der IE6 sich mit line-height: normal; nicht zu begnügen um die Vererbung zu überschreiben.
Aber gut zu wissen, daß es sowas gibt.
Ich werde es bei Gelegenheit mal ausprobieren.

Was nützt ein Initialwert wenn er nicht einheitlich behandelt wird?
 
Zuletzt bearbeitet:
Ja nee, is klar, Software hat auch nie Bugs, siehe Internet Exploder. Das perfekte Programm.
Sorry, aber das war ein echter Brüller ;-)

Grüße,
-Efchen


Ja fantastisch lustig. Dreamweaver hält sich meines Wissens an die Standarts. Wenn die Software an dieser Stelle Bugs haben sollte, wäre sie wohl nicht so populär und "erfolgreich".

Kleine Anmerkung:
Ich nutze nicht die WYSIWYG-Funktion von DW.
 
Ja fantastisch lustig. Dreamweaver hält sich meines Wissens an die Standarts. Wenn die Software an dieser Stelle Bugs haben sollte, wäre sie wohl nicht so populär und "erfolgreich".
Haaa, Du bist ein lustiges Kerlchen, hast mich schon wieder zum Lachen gebracht. "Wenn Software Bugs hätte, wäre sie nicht erfolgreich" - Prruuust, alle lieben Windows und IE ist der meistgenutze Browser :-D

Gruß,
-Efchen

P.S.: Es gibt keine Standarts, nur Standards!
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben