webForumDet fria alternativet

CSS rollover

HTML & CSS

5 svar · 285 visningar · startad av Skarre

Medlem sedan apr. 20012 427 inlägg
Frågan#1

Kort och gott: hur skapar man en "image rollover" med CSS och semantiskt korrekt XHTML? Jag har googlat men inte hittat något exempel på en sådan.

Tack på förhand!

Medlem sedan nov. 20041 740 inlägg
#2

Det finns många sätt. Ska bilden vara en länk också?

<a href="dinlank.html" id="rollover">Klicka här</a>

<style type="text/css" media="screen">
#rollover {
            width: 100px;
            height: 100px;
            display: block;
            background-image: url("bild1.jpg");
            text-indent: -10000px;
}

#rollover:hover {
            background-image: url("bild2.jpg");
}
</style>

Annars går det bra att lösa med javascript.

Medlem sedan apr. 20012 427 inlägg
#3

Det där var ju faktiskt smidigt, tack för den! :) Jag märkte dock att det uppstod ett streck i FF trots "text-indent"-prylen, men jag använde istället "text-decoration:none" och la in en & nbsp; i länken istället. Kanon!

Medlem sedan okt. 20005 273 inlägg
#4

Jag hade lagt texten inom en <span> och sedan satt

[red]
#rollover span
{
display: none;
}
[/red]

På så sätt kommer de som surfar utan css att se länken. Dock inte de som har bilder avslaget, men de såg ju inte din länk tidigare heller....

mv icaaq

Medlem sedan dec. 20042 245 inlägg
#5
<a href="#">foo<span></span></a>
a, a span { display:block; width:100px; height:50px; }
a { position:relative; overflow:hidden; }
a span { position:absolute; top:0; left:0; background:url(foo) left bottom; }
a:hover span { background-position:left top; }

Då ser man texten i scenariot CSS på, bilder av.

Hmm...det verkar funka lite halvtaskigt i IE. :(

Medlem sedan nov. 20041 740 inlägg
#6

Jag upptäckte också linjen i Firefox nu. Den går enkelt att plocka bort med en overflow: hidden;

<a href="dinlank.html" id="rollover">Klicka här</a>

<style type="text/css" media="screen">
#rollover {
            width: 100px;
            height: 100px;
            display: block;
            background-image: url("bild1.jpg");
            text-indent: -10000px;
            overflow: hidden;
}

#rollover:hover {
            background-image: url("bild2.jpg");
}
</style>

Att lägga in en massa extra span är onödigt i det här fallet.

388 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
128 ms — deklarationer (db)
124 ms — hämta statistik (db)
134 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)