Avatar billede n-emy Nybegynder
29. juni 2011 - 23:32 Der er 5 kommentarer og
1 løsning

Ændre style på tidligere div

Hejsa

Jeg sidder og sætter et design op i html/css, hvor jeg har 10 divs der gentages i streg:

<div style="border-bottom:#000 1px solid;"></div>
<div style="border-bottom:#000 1px solid">Hejsa hejsaa</div>
<div style="border-bottom:#000 1px solid">Hejsa hejsaa</div>
<div style="border-bottom:#000 1px solid">Hejsa hejsaa</div>
<div style="border-bottom:#000 1px solid">Hejsa hejsaa</div>

Ideen er at når det bliver skrevet står der:

----------
Hejsa hejsaa
----------
Hejsa hejsaa
----------
Hejsa hejsaa
----------
Hejsa hejsaa
----------

Og det er sådan set let nok, det tricky opstår i at jeg gerne vil have border top og bund på en box skifter til en bestemt farve og det er jo svært fordi det kun er border bottom der er defineret i hver boks, så derfor skal man (sandsynligvis via javascript) sætte en hover på den tidligere div også, jeg kunne bare godt tænke mig at vide helt præcist hvordan :)
Avatar billede kjeldsted Novice
29. juni 2011 - 23:57 #1
Altså du vil gerne have at hvis man holder musen over div nr. 2 så skal den ændre stylen for div nr. 1?
Avatar billede n-emy Nybegynder
30. juni 2011 - 01:21 #2
Den skal ændre style for både div 1 og 2 :) og hvis du holder musen over div 3 er det borderen for både div 2 og 3 :)
Avatar billede steffansteffan Nybegynder
30. juni 2011 - 02:24 #3
Hej,

Det kan styres på denne måde:

<div id="2" style="border-bottom:1px Solid #000000;">Hej 2</div>

<div id="3" style="border-bottom:1px Solid #000000;" onmouseover="document.getElementById('2').style.borderColor='red'; document.getElementById('2').style.backgroundColor='#A9A9A9';"  onmouseout="document.getElementById('2').style.borderColor='black'; document.getElementById('2').style.backgroundColor='#FFFFFF';">Hej 3</div>

Sig til hvis du mangler hjælp til at samle det helt færdig.

/Steffan
Avatar billede kjeldsted Novice
30. juni 2011 - 08:58 #4
Så vidt jeg lige kan se i #3, bliver der kun ændret style for div'en over. Og jeg synes måske nok at det vil blive lidt overdrevet med kode hvis ovenstående skal fordobles og copy-pasten til HVER div. Så jeg ville nok foretrække at gøre det i en funktion. Noget a lá:

<script type="text/javascript">
function changeBorderOver($divId)
{
    if($divId>1)
    {
        docuemnt.getElementById($divId).style.borderColor='red';
    }
    else
    {
        docuemnt.getElementById($divId-1).style.borderColor='red';
        docuemnt.getElementById($divId).style.borderColor='red';
    }
}

function changeBorderOut($divId)
{
    if($divId>1)
    {
        docuemnt.getElementById($divId).style.borderColor='black';
    }
    else
    {
        docuemnt.getElementById($divId-1).style.borderColor='black';
        docuemnt.getElementById($divId).style.borderColor='black';
    }
}
</script>



Hvis du indsætter alt dette (inkl. <script></script> i din head i toppen af siden, skal du bare i HTML'en ved dine div's skrive:

<div id="1" onMouseOver="changeBorderOver(1)" onMouseOut="changeBorderOut(1)" style="border-bottom:#000 1px solid;"></div>
<div id="2" onMouseOver="changeBorderOver(2)" onMouseOut="changeBorderOut(2)"  style="border-bottom:#000 1px solid">Hejsa hejsaa</div>


osv. osv.
Avatar billede n-emy Nybegynder
03. juli 2011 - 12:02 #5
Mange tak kjeldsted fik dit til at virke :) Svar?
Avatar billede kjeldsted Novice
03. juli 2011 - 12:15 #6
Det var så lidt :)
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