Avatar billede rudi1234 Nybegynder
30. december 2003 - 19:07 Der er 17 kommentarer og
1 løsning

DHTML-menu flyder lidt rundt

Menuen på denne testside virker fint, men submenuerne passer ikke helt under hovedmenupunkterne. http://jlarsen.users.whitehat.dk/beta

Menuen skal være centreret, og derfor har jeg lagt den ind i en DIV der er centreret. Ellers er der flg. CSS:

A.layermenu:link,A.layermenu:visited,A.layermenu:hover,A.submenu:link,A.submenu:visited, A.submenu:hover {
color: black;
text-decoration: none;
font-size: 10px;
background : rgb(145,160,179);
display: block;
width: 100%;
border: 1px solid rgb(145,160,179);
padding: 4px;
}

A.layermenu:hover, A.submenu:hover {
    background : rgb(190,203,220);
    }

.menustruc {
position: absolute;
align : center;
top: 0px;
visibility: visible;
}

.layer01 {
position: absolute;
top: 47px;
visibility: hidden;}

Hvordan får jeg submenuerne til at falde ned under de respektive overmenuer?
Avatar billede ellebaek Nybegynder
30. december 2003 - 19:18 #1
ved ikke om du måske skal have en align : center; ind i din layer01
Avatar billede rudi1234 Nybegynder
30. december 2003 - 19:20 #2
det ændrer ikke noget :o)
Avatar billede ellebaek Nybegynder
30. december 2003 - 19:23 #3
hvordan ser den kode ud hvor du sætter menuen ind ?
Avatar billede rudi1234 Nybegynder
30. december 2003 - 19:28 #4
Hvis I vil kigge på kilden, så brug evt. linket ovenfor. Men kilden er også her:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>

<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<title>Testside: Velkommen</title>
<link rel="stylesheet" type="text/css" HREF="style/style.php">
<SCRIPT LANGUAGE="JavaScript" SRC="include/js.js" type="text/javascript"></SCRIPT>
</head>

<body  onload="autoSkjul('L1','L2','L3')">

<div style="text-align : center;">
<div id="Main" class=".menustruc" align="center"><table class="menu"><tr>
<td style="width:100px;" class="layermenu"><p><a href="?page=page.php&amp;file=&amp;pageId=1&amp;parentMenuId=1" onFocus="blur()" target="_self" onmouseover="show('L1');hide('L2');hide('L3'); return" onclick="hide('L1');return" class="layermenu">Velkommen</a></p></td>
<td style="width:100px;" class="layermenu"><p><a href="?page=page.php&amp;file=&amp;pageId=2&amp;parentMenuId=2" onFocus="blur()" target="_self" onmouseover="show('L2');hide('L1');hide('L3'); return" onclick="hide('L2');return" class="layermenu">Side 1</a></p></td>
<td style="width:100px;" class="layermenu"><p><a href="?page=page.php&amp;file=forum.php&amp;pageId=5&amp;parentMenuId=5" onFocus="blur()" target="_self" onmouseover="show('L3');hide('L1');hide('L2'); return" onclick="hide('L3');return" class="layermenu">Forum</a></p></td></tr></table><div id="L1" class="layer01" style="width: 72;left : 11px"><table width="98" class="layermenu"><tr><td></td></tr></table></div>

<div id="L2" class="layer01" style="width: 72;left : 111px"><table width="98" class="layermenu"><tr><td class="layermenu"><div align="right"><p><a class="submenu" href="?page=page.php&amp;file=&amp;pageId=3&amp;parentMenuId=2" onFocus="blur()" target="_self">En underside</a></div></td></tr>
<tr><td class="layermenu"><div align="right"><p><a class="submenu" href="?page=page.php&amp;file=&amp;pageId=4&amp;parentMenuId=2" onFocus="blur()" target="_self">En underside2</a></div></td></tr>
</table></div>

<div id="L3" class="layer01" style="width: 72;left : 211px"><table width="98" class="layermenu"><tr><td class="layermenu"><div align="right"><p><a class="submenu" href="?page=page.php&amp;file=forum.php&amp;pageId=6&amp;parentMenuId=5" onFocus="blur()" target="_self">Underforum</a></div></td></tr>
</table></div>

</div><table class="body"">
    <TR>
        <TD class="headline"><H1><br>Velkommen</H1></TD>
    </TR>
    <TR>
        <TD class="body"></TD>
    </TR>
    <TR>
        <TD class="headline"><small>&copy; En testside 2003 <a href="main.php?page=admin/login.php"><img src="images/spacer.gif" border="0" alt="Administrér" width="10px" height="10px"></a> <br>Sidst opdateret: 30/12 18:55</small></TD>
    </TR>
</table>
</div>
</body>
</html>
Avatar billede rudi1234 Nybegynder
30. december 2003 - 19:29 #5
Lidt kaotisk at se på... :o)
Avatar billede ellebaek Nybegynder
30. december 2003 - 19:30 #6
Tja...

men jeg er ret sikker på det er der hvor der står left : 111 px og left : 211 px som du skal rette til..

jeg er bange for du selv bliver nødt til at definere hvor menuen skal være placeret.
Men prøv bare at ændre lidt i tallene til at starte med..
Og så finde noget der passer..
Avatar billede rudi1234 Nybegynder
30. december 2003 - 19:37 #7
det er jeg også  bange for - jeg håber der er andre muligheder (en eller anden form for relativ positionering). Jeg kan jo ikke vide hvor stort brugernes aktuelle vindue er (maksimeret eller ej), og derudover er siden dynmaisk (PHP), så antallet af menupunkter varierer...
Avatar billede ellebaek Nybegynder
30. december 2003 - 19:38 #8
Hvilket naturligvis ikke er særlig praktisk. Men du bliver nok nødt til at flytte lidt rundt, og så droppe det med center, da det er forskellig i forskellige browsere afh. skærmopløsning.

Jeg tror du bliver nødt til at lave en side der ikke nødvendigvis er centreret, men i stedet defineret til en bestemt afstand til venstre side...
Avatar billede rudi1234 Nybegynder
30. december 2003 - 20:01 #9
ellebaek -> du har ret, og jeg har fået det til at virke rimeligt! Smid et svar, så får du pointene.
Avatar billede rudi1234 Nybegynder
30. december 2003 - 20:14 #10
Hmmm - der var jeg for hurtig... Jeg fik dem til at passe ved at ændre left for hvert menupunkt, men da jeg rezizede vinduet, var den helt gal igen.

Findes der noget Javascript der kan  give den aktuelle viduesstr.?
Avatar billede ellebaek Nybegynder
30. december 2003 - 20:36 #11
måske...

Jeg leder lige.

2 sek.
Avatar billede ellebaek Nybegynder
30. december 2003 - 20:47 #12
Her var noget:

document.body.offsetWidth
document.body.offsetHeight

til bestemmelse af størrelse på vindue.
Avatar billede ellebaek Nybegynder
30. december 2003 - 20:48 #13
eller:

window.screen.availWidth
window.screen.availHeight
Avatar billede roenving Novice
31. december 2003 - 01:32 #14
En class i et tag må _ikke_ have et punktum i, da det skal være en gyldig identifier, som skal starte med a-z/A-Z eller _ , så tagget skal hedde:

<div id="Main" class="menustruc" align="center">

-- desuden er det ofte ikke hverken rart eller nødvendigt, at det er absolute positioneret, så prøve med position:relative på menustruct-definitionen !-)
Avatar billede rudi1234 Nybegynder
31. december 2003 - 09:56 #15
Men hvis jeg laver det relativt, så "skubber" menuen til resten af sidens elementer. Når en submenu fx falder ned, så flytter resten af siden nedad.

Hvordan undgås det?
Avatar billede rudi1234 Nybegynder
31. december 2003 - 13:06 #16
roenving -> smid et svar...! Jeg går den vej med at lave det relativt!
Avatar billede roenving Novice
02. januar 2004 - 03:39 #17
Velbekomme '-)

-- men i flere lag kan man jo veksle mellem det relative og det absolutte !-)
Avatar billede roenving Novice
03. januar 2004 - 02:44 #18
-- 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