Axel Richter: mouseover funktion geht nicht richtig

Beitrag lesen

Hallo,

Das geht ohne JavaScript mit CSS.

richtig.

<a href="#"><img name="bild" src="bild.jpg" border="0" onmouseover="over_pic(bild)" onmouseout="off_pic(bild)"></a>

Also weg mit onmouseover und onmouseout. border kommt ebenfalls weg; die Angabe wird auch mit CSS gemacht:

a img {

border-width: 10px;
}
a:link img, a:visited img {
  border-color: transparent;
}
a:hover img {
  border-color: red; /* hier die gewünschte Farbe */
}

Hm, wenn Du jemanden von CSS überzeugen willst, dann sollte das aber auch im IE funktionieren. Der hat hier gleich zwei Probleme.  
  
1\. Der Selector "a:hover img" "zündet" nur, wenn es durch ein "a:hover" "getriggert" wurde. Man muss also irgendwas bei a:hover ändern, und wenn es nur das Wechseln einer Farbe von #FFF nach white ist.  
  
2\. Bei einem IMG mit transparentem Rahmen in einem A scheint die color (nein, nicht die background-color ;-)) des A-Elements durch den transparenten Rahmen des DIV.  
  
Besser also:  
  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"  
        "http://www.w3.org/TR/html4/strict.dtd">  
<html>  
<head>  
<title>Hover IMG im A</title>  
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">  
<style type="text/css">  
<!--  
a:link, a:visited {  
  color:#FFF; /\* hier die gewünschte Hintergrundfarbe angeben \*/  
  background-color:#FFF; /\* hier auch \*/  
}  
a:hover {  
  background-color:white; /\* Trigger für a:hover img ;-)\*/  
}  
a img {  
  border-width: 10px;  
}  
a:link img, a:visited img {  
  border-color: transparent;  
}  
a:hover img {  
  border-color: red;  
}  
\-->  
</style>  
</head>  
<body>  
<p><a href="#"><img name="bild" src="Beispiel.jpg"></a></p>  
</body>  
</html>  
  
  
viele Grüße  
  
Axel