5 Stimmen

IE 8 div und css-Cursor

Im Beispiel unten, wenn Sie auf Icons schweben, sollte der Cursor in einen anderen geändert werden. Es funktioniert mit Ausnahme von IE 8. Im IE 8 sind diese Icons nicht sichtbar, d.h. nicht nur der Cursor ändert sich nicht, sondern auch das Jquery-Klickereignis wird nicht ausgelöst. Betrachten Sie, wie der folgende HTML-Code in FF, IE7 und schließlich in IE8 funktioniert:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>CSS IE 8 cursor test</title>
     <style type="text/css" media="screen">
        .icon-button {
            float: left; 
            cursor: pointer;
        }
        .ui-icon { width: 15px; height: 10px; background-image: url(http://sstatic.net/so/img/replies-off.png); }
 </style>
</head>
<body>
   <div class="icon-button ui-icon"></div>
   <div>Sample Text</div> 
</body>
</html>

Was könnte die Ursache des Problems sein? Was könnten mögliche Umgehungslösungen sein?
Vielen Dank im Voraus.

P.S. Eine Änderung des DOCTYPE ist nicht wirklich möglich.
Auch wenn ich die Schwimmer: links auf diesem Beispiel scheint es wie "behoben", aber wenn ich es auf einer Website zu entfernen, abgesehen von defekten Design, es hilft auch nicht.

3voto

brianpeiris Punkte 10560

Der IE8 mag keine leeren div s. Das Einfügen eines leeren <img/> mit einem transparenten Pixel innerhalb des Divs scheint das Problem zu beheben.

Demo: http://jsbin.com/asiju (Bearbeitbar über http://jsbin.com/asiju/edit )

HTML-Quelle:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>CSS IE 8 cursor test</title>
    <style type="text/css" media="screen">
      .icon-button { float: left; cursor: pointer; }
      .ui-icon { width: 15px; height: 10px; background-image: url(http://sstatic.net/so/img/replies-off.png); }
      .dummy-image { width: 15px; height: 10px; vertical-align: top; border: none; }
    </style>
  </head>
  <body>
    <div class="icon-button ui-icon"><img class="dummy-image" src="data:image/gif;base64,R0lGODlhAQABAJH/AP///wAAAMDAwAAAACH5BAEAAAIALAAAAAABAAEAQAICVAEAOw=="/></div>
    <div>Sample Text</div>
  </body>
</html>

1voto

IProblemFactory Punkte 9171

Ich kenne keinen Hack, der ihn schlägt. Aber wenn etwas angeklickt werden kann, sollte es in a Tag, also einfügen a und vielleicht display:block . href sein könnte =# . Diese Lösung scheint semantisch und gut für mich zu sein :)

1voto

Nothing Punkte 11

Wie wäre es damit:

<a href="whatever.php">
<div class="BG IMAGE" style="cursor:The one you want"></div>
</a>

Ich benutze es selbst und es funktioniert gut.

1voto

Sridhar Punkte 11

Nehmen Sie die float:left und die css-Klasse sieht wie folgt aus.

.icon-button { cursor: pointer; }

Es sollte funktionieren.

1voto

Leon Gaban Punkte 31681

Das hat bei mir gerade im IE8 funktioniert, super einfach

cursor: pointer !important;

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X