Avatar billede nielsbrinch Nybegynder
08. marts 2004 - 23:10 Der er 11 kommentarer og
2 løsninger

OnMouseOver skift af tabelbaggrund og tekstfarve

Jeg har en tabel der ser sådan ud. Hvordan skal min CSS se ud, for at baggrundsfarven i cellen ændrer sig og teksten der står inde i cellen ændrer sig, når jeg fører musen hen over cellen?

<table>
  <tr>
    <td class="TopMouseOut" onMouseOver="this.style.className='TopMouseOver'" onMouseOut="this.style.className='TopMouseOver'">One</td>
    <td class="TopMouseOut" onMouseOver="this.style.className='TopMouseOver'" onMouseOut="this.style.className='TopMouseOver'">Two</td>
    <td class="TopMouseOut" onMouseOver="this.style.className='TopMouseOver'" onMouseOut="this.style.className='TopMouseOver'">Three</td>
  </tr>
</table>
Avatar billede md_craig Nybegynder
08. marts 2004 - 23:14 #1
Når det bare er farve... hvorfor så ikke bare bruge en Hover ??? mener jeg at skulle virke..
Avatar billede md_craig Nybegynder
08. marts 2004 - 23:16 #2
Men i dit tilfælde med klasser:

    <td class="TopMouseOut" onMouseOver="this.style.className='TopMouseOver'" onMouseOut="this.style.className='TopMouseOut">Three</td>

TopMouseOver
{
  color: #"Hex-Kode";
  background-color: #"Hex-kode";
}
TopMouseOut
{
  color: #"Hex-Kode";
  background-color: #"Hex-kode";
}
Avatar billede jakobclausen Nybegynder
08. marts 2004 - 23:18 #3
Avatar billede jakobclausen Nybegynder
08. marts 2004 - 23:20 #4
Hvordan vil du gerne have at teksten skal ændre sig ?
Avatar billede roenving Novice
08. marts 2004 - 23:21 #5
Nu er der desværre ikke mange browsere, som overholder css2-standarden på lige dette område, så det vil være naturligt at bruge javascript-events ...

Det er dog helt skørt at skifte class på en element, som er indlæst, da browseren så starter forfra på at genere styles mv.

Desuden er det også nemt at ændre enkelt-properties, nemmest med en funktion, når det nu er flere ens:

<script type="text/javascript">
function chOver(elm,typ){
  st = elm.style;
  if(typ=='over'){
    st.color = "red";
    st.backgroundColor = "black";
  }else{
    st.color = "black";
    st.backgroundColor = "red";
  }
}
</script>

<td class="TopMouseOut" onMouseOver="chOver(this,'over')" onMouseOut="chOver(this,'out')">One</td>
Avatar billede nielsbrinch Nybegynder
09. marts 2004 - 08:28 #6
Det mener jeg også craig, men det lader ikke til at virke. Heller ikke den CSS-metode du har angivet, ser ud til at virke i IE 6.0. Jeg ved ikke hvorfor.

Jakobclausen, teksten skal bare ændre farve. Og ikke fordi det er et link.

Roenving, din metode virker ligesom den skal, selvom det ikke er den CSS-løsning jeg efterspurgte.
Avatar billede nielsbrinch Nybegynder
09. marts 2004 - 09:04 #7
roenving, med din løsning, hvad så hvis det skal være et baggrundsbillede i stedet?
Avatar billede roenving Novice
09. marts 2004 - 20:56 #8
st.backgroundImage = "url('billede.jpg')";
Avatar billede roenving Novice
09. marts 2004 - 21:02 #9
-- og forøvrigt er den løsning, du startede med, jo også en javascript-løsning, den tvinger bare browseren til at genskabe sit css-DOM-træ, hvor property-ændringer kun ændrer det konkrete elements properties ...

Ifølge css2-standarden kan man bruge :hover pseudo-selectoren på alle de elementer, man lyster, men for alt andet end a-tags er det næsten ikke implementeret i nogle browsere !-)
Avatar billede nielsbrinch Nybegynder
11. marts 2004 - 21:17 #10
svar craig og roenving
Avatar billede md_craig Nybegynder
11. marts 2004 - 21:42 #11
svar.
Avatar billede roenving Novice
11. marts 2004 - 22:59 #12
Velbekomme '-)
Avatar billede roenving Novice
11. marts 2004 - 23:13 #13
-- og tak for points ;~}
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