Avatar billede eikhorsholm Nybegynder
01. juni 2005 - 21:59 Der er 16 kommentarer og
1 løsning

Hover på celler med CSS.

Er det muligt, at ændre baggrundsfarven med hover på celler i en tabel i css?

Mener vist, at det ikke fungerer i IE, men derimod i andre browsere. Er det muligt, at lave en løsning som evt. referere til en .htc-fil eller hvad de hedder så det fungerer i alle browsere?
Avatar billede skovenborg Nybegynder
01. juni 2005 - 22:09 #1
Det er rigtigt at IE kun tillader :hover på links. Du kan derimod få det til at virke i de fleste browsere via java script:
<script type="text/javascript">
function changeColors(elm,fgColor,bgColor) {
      elm.style.color = fgColor;
      elm.style.backgroundColor = bgColor;
  }
</script>
<style type="text/css">
  td {
      background-color:#000;
      color:#fff;
  }
</style>

<table>
  <tr><td onmouseover="changeColors(this,'#000','#fff');" onmouseout="changeColors(this,'','');">Celle 1</td><td onmouseover="changeColors(this,'#000','#fff');" onmouseout="changeColors(this,'','');">Celle 2</td></tr>
  <tr><td onmouseover="changeColors(this,'#000','#fff');" onmouseout="changeColors(this,'','');">Celle 3</td><td onmouseover="changeColors(this,'#000','#fff');" onmouseout="changeColors(this,'','');">Celle 4</td></tr>
  <tr><td onmouseover="changeColors(this,'#000','#fff');" onmouseout="changeColors(this,'','');">Celle 5</td><td onmouseover="changeColors(this,'#000','#fff');" onmouseout="changeColors(this,'','');">Celle 6</td></tr>
</table>
Avatar billede eikhorsholm Nybegynder
01. juni 2005 - 22:12 #2
Det er mest for at få det til at virke med css, så jeg kan samle det i mit stylesheet.
For det virker vel også uden JS med f.eks.:

onmouseover="this.style.backgroundColor='#FFFFFF'" osv.
Avatar billede olebole Juniormester
01. juni 2005 - 22:21 #3
<ole>

Nej, som skovenborg skriver, er det ikke muligt at lave hover på andet end links i IE - hvis det skal gøres med CSS.

Det kan kun gøres med JavaScript ... f.eks. det, du selv skriver:
    onmouseover="this.style.backgroundColor='#FFFFFF'"

/mvh
</bole>
Avatar billede eikhorsholm Nybegynder
01. juni 2005 - 22:38 #4
Hmm. Ok, troede man kunne lave et hack med .htc-filer eller noget, så man kunne angive det i stylesheetet, som så refererede til .htc-filen.
Avatar billede eikhorsholm Nybegynder
01. juni 2005 - 22:52 #5
Burde dette ikke virke i Firefox?:

mit stylesheet:

.bar:hover {
  background-color: #FFFFFF;
}

<table>
  <tr>
    <td class="bar">test</td>
  </tr>
</table>
Avatar billede skovenborg Nybegynder
01. juni 2005 - 23:43 #6
jo, men var pointen ikke, at det skulle virke i (næsten) alle browsere? Du kan selvfølgelig lave en kombineret løsning hvor du både bruge javascript-løsningen og din css-løsning. Så får du også dem med som har slået Javascript fra (og som understøtter :hover på celler).
Avatar billede olebole Juniormester
02. juni 2005 - 00:20 #7
Hvad skulle man bruge et HTC-'hack' til? Det skal vel gerne virke i flere browsere? Og det vil stadig være JS ... ikke CSS  :)
Avatar billede eikhorsholm Nybegynder
02. juni 2005 - 08:37 #8
--> Grunden til jeg ikke vil bruge JavaScript er, at jeg skal have samlet alle mine cellers egenskaber i et stylesheet el. lign.
Avatar billede notes2c Nybegynder
02. juni 2005 - 09:46 #9
Det du ønsker kan godt lade sig gøre, for dean edwards har lavet en CSS 2 implimentering  v.h.a javascript via htc filer til ie. Det vil betyde at du kan have et single style sheet for så fungere på alle browsere som understøtter CSS 2 standarderne.

Her kan du se hvorlangt han er kommet (og det er langt): http://dean.edwards.name/IE7/

Hvorvidt om du så vil gå så langt er jo op til dig...
Avatar billede eikhorsholm Nybegynder
02. juni 2005 - 17:27 #10
notes2c -> Det er sådan noget jeg leder efter. Men bare slet ikke så omfattende, det skal kun inkl. hover-funktionen i css. Er det muligt?
Avatar billede eikhorsholm Nybegynder
02. juni 2005 - 17:32 #11
Avatar billede eikhorsholm Nybegynder
02. juni 2005 - 17:33 #12
Tak for alle svar!
Avatar billede eikhorsholm Nybegynder
02. juni 2005 - 17:34 #13
Nu virker det i IE, men ikke i Firefox. Nedenstående eksempel:

.bar:hover {
  background-color: #FFFFFF;
}

<table>
  <tr>
    <td class="bar">test</td>
  </tr>
</table>

Har heller aldrig fungeret i Firefox. Nogen der kan sige hvorfor? Det burde vel virke?
Avatar billede skovenborg Nybegynder
02. juni 2005 - 17:44 #14
Er du sikker? Det virker fint for mig, og der ser da heller ikke ud til at være nogle problemmer som Mozilla skulle kunne løbe ind i. Det skulle da lige være at man ikke kunne se det fordi du ændrer bagrunden til hvid - og at der fx også er hvid bagved.
Avatar billede eikhorsholm Nybegynder
02. juni 2005 - 20:13 #15
Det her virker ikke i Firefox, Netscape eller Opera.

<html>

<head>
<title>bar</title>
<style type="text/css">
<!--
.bar:hover {
  background-color: #000000;
}-->
</style>
</head>

<body>

<table>
  <tr>
    <td class="bar">test</td>
  </tr>
</table>
</body>

</html>
Avatar billede skovenborg Nybegynder
02. juni 2005 - 22:49 #16
Hmm, meget sjov opdagelse. Det virker åbenbart kun hvis du har husket doctypen - hvilket du jo i forvejen skal, så det er jo intet problem.

Prøv at tilføje:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  "http://www.w3.org/TR/html4/loose.dtd">
helt i toppen, så skulle det virke.
Avatar billede olebole Juniormester
03. juni 2005 - 01:35 #17
<ole>

- og så bør man nok udelade HTML-kommentar-tags i style-tag'et  :)

/mvh
</bole>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester