eXma » Diskutieren » Computer und Technik
Startseite - Veranstaltungen - Mitglieder - Suche
Vollständige Version anzeigen: Rollover mit CSS
Stormi
Hallo liebe CSS begeisterte. Unlängst wollte ich mal mit CSS rumspielen, da stieß ich auf folgendes:

Man kann ja mittels a:hover { ... } einen Rollovereffekt für Links bewerkstelligen. Unter Browsern mit Geckoengine geht das auch mit anderen HTML Elementen, z.B. divs shifty.gif
Leider geht das natürlich im Internetexplorer nicht, der interpretiert hover nur für a's. Kennt zufällig jemand einen CSS Workaround, damit das evtl. doch im IE funktioniert? JavaScript lassen wir hier mal außen vor.
tjay
nee gibt es nicht...
Stormi
Warum wusst ich das rolleyes.gif
Perseus
hm, du kannst aber in dein <a> doch ziemlich viel reinlegen, nen Bild und Text usw.
Wenn du dem Link keine url gibst (href="#") und dazu noch nen Cursorwechsel machst, sodass da nicht zwangsläufig die Hand zu sehen ist, dann find ich das ok - ist valide und erfüllt seinen Zweck; dass ein Vorleseprog damit aber Probs haben kann muss dir klar sein.
mcnesium
je nachdem was du hovern willst kannste ja trotzdem n a-tag nehmen und den so aussehen lassen wie du willst... solange du kein href rein schreibst, wirds auch kein hyperlink wink.gif



/edit: mist, ich sollte ungelesene tabs nich so lange auf lassen... biggrin.gif
Perseus
unter http://www-mmt.inf.tu-dresden.de/Lehre/Som...e/Int/index.htm
mal bei der Semperoper oben mittig mal auf das rechte obere Quadrat klicken (Geschichte Dresdens b)
Alles, was da ins Frame geladen wird, ist von Sowjet und mir (über die gestalterische Qualität will ich nicht diskutiern..sind eben keine Grafiker, dafür ist alles nur mit CSS-Boxen gebaut und größtenteils valide)
Wenn du dir dann irgendne Epoche aussuchst, kannst du rechts über die größeren Bilder fahren und es wird dir nochmal stark vergrößert angezeigt, funktioniert im IE, unter allen Geckos, Safari, Konqueror, ...
Dort ist das mit <a>s gelöst, die wie oben beschrieben eben keine Url enthalten, dafür den Cursorwechsel...so gemacht hab ich das auch erst, als ich merkte, dass der IE zu doof is wink.gif
(btw: ohne den Cursorwechsel gehts im IE nicht. Ist ein Bug von dem Teil, hab ich in diversen Webdesignforen schon erläutern müssen, weils keiner glaubte)
Sowjet
<off>
gefällt dir wohl nimmer unser projekt?!
ich finde es gestalterisch wertvoll, da es mal was andres ist als der ganze andre quark
:p
<on>
BNAL
also die änderung der hintergrundfarbe geht im IE leider nur mit javascript angry.gif

@perseus: die änderung des cursors bei links kann man mit css "rückgängig" machen (funktioniert auch beim IE)
mcnesium
Zitat(BNAL @ 02 Mar 2006, 19:31)
also die änderung der hintergrundfarbe geht im IE leider nur mit javascript  angry.gif


gar nich wahr! wenn du einen a-tag mit id="wechseln" hast, sagste einfach

a#wechseln:link {background-color:#000000}
a#wechseln:hover {background-color:#FFFFFF}

biggrin.gif
Perseus
Zitat(BNAL @ 02 Mar 2006, 19:31)
@perseus: die änderung des cursors bei links kann man mit css "rückgängig" machen (funktioniert auch beim IE)
*

Ist mir durchaus bewusst und hab ich ja - s.o. wink.gif
BNAL
ich bin von nicht-links ausgegangen

folgendes funktioniert bei gecko-basierten browsern, opera und konqueror aber NICHT im IE (obwohl es das laut CSS spezifikation sollte)
CODE

<style>
.wechseldich:hover { background-color: #0F0; }
</style>

<table>
<tr class="wechseldich">
<td>streichel mich</td>
</tr>
</table>


(jaja .. quick&dirty code)
mcnesium
es geht hier aber genau darum DASS es im IE gehn soll wink.gif
BNAL
das war auch nur eine antwort auf deinen letzten post tongue3.gif
BNAL
so beispiel wie es mit dem IE ab version 5.5 funktioniert (mit n paar zeilen mehr code wuerde auch 4.0 gehen, aber nutzt eh kaum noch jemand) und natuerlich auch mit den geckos und khtml basierten browsern sowie opera

CODE

<html>
<head>
<title>mouse over test</title>
<script language="javascript">
function colorize ( element, color ) {
 element.style.backgroundColor = color;
}
</script>
</head>
<body>

<div onMouseOver="colorize(this, '#f0f');" onMouseOut="colorize(this, '#fff');">
test
</div>

<table>
<tr onMouseOver="colorize(this, '#f0f');" onMouseOut="colorize(this, '#fff');">
<td> test </td>
</tr>
</table>

</body>
</html>


wieder nur dirty code, aber sollte als bsp reichen

anzumerken ist, das man bei einem verlassen des feldes mit der maus nur eine farbe setzen kann. entfernen funtkioniert meines wissens nicht.

ohne javascript laesst sich der IE 5 & 6 leider nicht ueberzeugen. wacko.gif
aber mit dem 7er soll ja alles besser werden wink.gif
tjay
man könnte element.style.backgroundcolor zwischen speichern so könnte
man die farbe auch wieder "entfernen".
Stormi
Danke für eure Mühen, aber mit JavaScript hätte ich das schon selber hingekriegt. Die Intension war aber, dass auch die JavaScriptverweigerer in den Genuss der "Effekte" kommen. Das Benutzen von JavaScript hilft da also nicht weiter cool.gif
tjay
die 1% der user kannst du gut und gerne ausschliessen... smile.gif
die haben es nicht anders verdient wink.gif
BNAL
ich denke die meisten javascriptgegner werden sowieso nicht mit dem IE unterwegs sein, von daher kannst du fuer diese zielgruppe zus. zu dem javascript noch die css definitionen mit anbieten.
die restlichen 0,irgendwas prozent der benutzer werden mit sicherheit auch ohne diese effekte klarkommen bzw sind unbenutzbare seiten gewoehnt
Stormi
Dazu käme aber noch die Tatsache, dass ich dann extra für IE ein Javascript bauen muss, dass dann auch nur im IE benutzt wird, solcherlei Spielereien wollte ich eigentlich vermeiden.
BNAL
leider surfen ein Grossteil der Leute noch mit dem IE rum, und da das nicht mal ein unerheblicher Teil ist kommt man kaum drum rum wenn man die Leute nicht vergraulen will sad.gif
Ist halt die Frage ob es nur ein unterstuetzendes Designelement ist oder ein wesentlicher Bestandteil (z.b. von der Navigation) - im ersteren Fall kann man dann auch 'drauf verzichten und mit einem Hinweis darauf aufmerksam machen das der IE schrottig ist.
lusch3
edit: bin doof