Avatar billede testpilot_dk Nybegynder
28. august 2005 - 14:03 Der er 13 kommentarer og
1 løsning

Et firkantet link skifter farve

Hej!

Jeg har nogle links som jeg smidder ind i nogle bokse, divs

div.top {
    width: 120px;
    height: 16px;
    border: 1px solid black;
    background: #008699;
    text-align: center;
}

Mit spørgsmål er så, hvordan får jeg den til at virke som et link, altså skifter baggrundsfarve i boksen?
Avatar billede roenving Novice
28. august 2005 - 14:07 #1
F.eks.

<div class="top" onmouseout="this.style.backgroundColor='';" onmouseover="this.style.backgroundColor='#f00';">
Avatar billede testpilot_dk Nybegynder
28. august 2005 - 14:09 #2
Det kan ikke gøres på andre måde, direkte i CSS filen
Avatar billede doggy82 Praktikant
28. august 2005 - 14:17 #3
øh hvor har du linksne?

Du kan lave noget lign:

a:hover .top {
  background:#f00;
}
Avatar billede roenving Novice
28. august 2005 - 14:21 #4
-- men den notation understøttes ikke af alle browsere, deriblandt IE !o]

-- sjovt nok understøttes den direkte i de samme browsere:

.top:hover{background-color:#f00;}

-- og så indebærer doggys forslag sandsynligvis ulovlig nesting, da links default er inline-elementer, som ikke må indeholde block-level-elementer, som din div sandsynligvis er (default !-)

-- og testpilot, nej, på nuværende tidspunkt kan det ikke, men man kan da simulere det ved at lave en simpel funktion, som onload sætter funktionerne ind !o]
Avatar billede testpilot_dk Nybegynder
28. august 2005 - 14:21 #5
Mine Divs ligger i inden i et link!
Avatar billede testpilot_dk Nybegynder
28. august 2005 - 14:24 #6
Roenving, hvad mener du lige med at lave en simpel funktion som kan ændre det "runtime" altså når brugeren kører over link
Avatar billede roenving Novice
28. august 2005 - 14:27 #7
Ikke runtime, men onload !-)

F.eks.

<script type="text/javascript">
window.onload = function(){
  var divs = document.getElementsByTagName("div");
  for(i=0;divs.length>i;i++){
    if(divs[i].className == "top"){
      divs[i].onmouseover = function(){this.style.backgroundColor='#f00';};
      divs[i].onmouseout = function(){this.style.backgroundColor='';};
    }
  }
}
</script>
Avatar billede testpilot_dk Nybegynder
28. august 2005 - 14:31 #8
oaky, roenving, så læg du et svar, så får du points!

Det vil da gører det væsentlig næmmere

hvad værdi får : var divs = document.getElementsByTagName("div")
hvad gør den
Avatar billede roenving Novice
28. august 2005 - 14:38 #9
divs bliver til et array af alle div-elementer i dokumentet, men så undersøger vi lige, at vi kun sætter eventhandlers på dem, som har css-klassen 'top' !-)

-- og det kan da anbefales, at man ikke benytter sig af navne nogle steder, som ved brug andre steder kan skabe problemer ved brug andre steder, her 'top', som i javascript refererer til det yderste window-element, altså det, der refereres til i adresselinjen i browseren !o]

-- els velbekomme '-)
Avatar billede testpilot_dk Nybegynder
28. august 2005 - 14:39 #10
Det er jo rigtigt nok, det må jeg da lige ændre så man senere ikke bliver i tvilv

Takker ;)
Avatar billede testpilot_dk Nybegynder
28. august 2005 - 14:43 #11
hvis jeg nu vil have teksten i boksen til at skifte farve også, hvordan får jeg så den med!

Skal den ligge direkte på linket
Avatar billede testpilot_dk Nybegynder
28. august 2005 - 14:50 #12
Det har jeg klaret, havde lidt rod i min CSS fil!

God Weekend
Avatar billede olebole Juniormester
28. august 2005 - 23:48 #13
<ole>

- men husk lige, hvad roenving skrev i (28/08-2005 14:21:47):
Du kan ikke have divs liggende i a-elementer - med mindre du sætter:
    style="display:inline"
- på de divs, der ligger i dine links  :)

/mvh
</bole>
Avatar billede roenving Novice
29. august 2005 - 00:22 #14
-- og tak for point ;~}
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