Avatar billede clausmo Nybegynder
26. april 2004 - 11:37 Der er 18 kommentarer og
1 løsning

Menu som viser det aktive link

Hej,

Jeg vil gerne have min menu til at vise den aktive side (enten med en pil, et billede, fremhævet....) Jeg er begyndt på at lave det hele i html, men kan se at der kommer en del sider, og menuen løbende skal opdateres - Derfor vil jeg høre hvordan jeg kan lave en include-menu, som kan "huske" hvilket menupunkt der blev valgt og fremhæve dette (jeg har tidligere prøve med at lave en række if.. sætningen,- men det er ikke holdbart her...

Håber i forstår spørgsmålet
Avatar billede janomel Nybegynder
26. april 2004 - 11:52 #1
Kun for lige at følge med.

Er det som med en fold ud menu. Hvor du har Hoved punktet og derefter underpunkterne.
Avatar billede ralfi Nybegynder
26. april 2004 - 11:52 #2
Du kan lave dine menu punkter i include ja som her: <!--#include file="filnavn.htm"-->

Derefter kan du regulere dine forskellige elementers farve, weight o.s.v via css..
Det er ikke så svært, og det er meget nemmere end at skulle redigere alle dine html sider hele tiden.

læs om css her: http://www.html.dk/tutorials/css/
Avatar billede ralfi Nybegynder
26. april 2004 - 11:54 #3
smid eventuelt siden online så vi kan se præcis hvad du mener :)
Avatar billede clausmo Nybegynder
26. april 2004 - 13:09 #4
Det skal IKKE være en fold-ud-menu...

Der skal være en side med menu, så der kun er et sted at ændre/ tilføje, men menuen skal "vide" hvilken side der vises, - og det punkt i menuen skal fremhæves - Det skal atså være dynamsik på en eller anden måde (går jeg ud fra..)
Avatar billede steen_hansen Forsker
26. april 2004 - 13:11 #5
Kommer med noget CSS, øjeblik
Avatar billede steen_hansen Forsker
26. april 2004 - 13:18 #6
CSS:

a.menu, a.menu:link, a.menu:visited {
width: 100%;
display: block;
font-family: geneva, verdana, helvetica, arial;
font-weight: none;
font-size: 11px;
color: #e7e7e7;
background-color: #6b707b;
text-decoration: none;
}
a.menu:hover {
color: #000000;
background-color: #b1b5bc;
text-decoration: none;
}
.activeMenu {
display: block;
background-color:#b1b5bc;
text-decoration: none;
}
a.menu, a.activeMenu {
text-decoration: none;
}

MENU:

<a href="default1.asp" onFocus="this.blur();" class="<% If(InStr(strCurrentPage, "default1.asp")) Then Response.Write strActiveMenuClass Else Response.Write strMenuClass End If %>">default1</a>
Avatar billede steen_hansen Forsker
26. april 2004 - 13:21 #7
Dette skulle have været med:

<%
Dim strCurrentPage        : strCurrentPage = Request.ServerVariables( "SCRIPT_NAME" )
Dim strMenuClass        : strMenuClass = "menu"
Dim strActiveMenuClass    : strActiveMenuClass = "activeMenu"
%>

<a href="default1.asp" onFocus="this.blur();" class="<% If(InStr(strCurrentPage, "default1.asp")) Then Response.Write strActiveMenuClass Else Response.Write strMenuClass End If %>">default1</a>
Avatar billede clausmo Nybegynder
26. april 2004 - 14:33 #8
Jeg kan ikke helt se, hvordan jeg skal bruge det... Det ser ellers spændende ud :-)

<a href="default1.asp" onFocus="this.blur();" class="<% If(InStr(strCurrentPage, "default1.asp")) Then Response.Write strActiveMenuClass Else Response.Write strMenuClass End If %>">default1</a>

skal det bruges for hvert menupunkt?
Avatar billede steen_hansen Forsker
26. april 2004 - 14:36 #9
Lige nøjagtig1 :o) Jeg havde det samme problem, men det fungerer nu.

Pointen er, at hvis strCurrentPage = xxxxx.asp, så er class = 1
Hvis strCurrentPage <> xxxxx.asp, så er class = 2

Jeg kan dog se, at du lige mangler noget activeMenu til CSS. Vender tilbage.
Avatar billede steen_hansen Forsker
26. april 2004 - 14:39 #10
.activeMenu {
color: #000000;
display: block;
background-color:#b1b5bc;
}
a.menu, a.activeMenu, a.menu:hover, a.activeMenu:hover {
text-decoration: none;
}
Avatar billede clausmo Nybegynder
26. april 2004 - 14:49 #11
ok, jeg kigger lige på det... Det ligner det jeg har brug for!
Avatar billede steen_hansen Forsker
26. april 2004 - 14:50 #12
Fino! Håber det er lige dét :o)
Avatar billede clausmo Nybegynder
26. april 2004 - 15:09 #13
skal linket så ikke altid have det samme navn som filen??

Det er ikke særlig godt... Kan det undgås?
Avatar billede steen_hansen Forsker
26. april 2004 - 15:13 #14
Ja, du skal ved hvert menupunkt ind at rette:

<a href="default1.asp" onFocus="this.blur();" class="<% If(InStr(strCurrentPage, "default1.asp")) Then Response.Write strActiveMenuClass Else Response.Write strMenuClass End If %>">Menupunkt 1</a>
<a href="default2.asp" onFocus="this.blur();" class="<% If(InStr(strCurrentPage, "default2.asp")) Then Response.Write strActiveMenuClass Else Response.Write strMenuClass End If %>">Menupunkt 2</a>
<a href="default3.asp" onFocus="this.blur();" class="<% If(InStr(strCurrentPage, "default3.asp")) Then Response.Write strActiveMenuClass Else Response.Write strMenuClass End If %>">Menupunkt 3</a>

Det er det du mener?
Avatar billede steen_hansen Forsker
26. april 2004 - 15:14 #15
Hvis det er dét, du mener, kan det sikkert laves. Men her står jeg så lige af :o)
Avatar billede steen_hansen Forsker
26. april 2004 - 15:15 #16
... men det kan sikkert laves med en løkke, enten i ASP eller med JavaScript.
Avatar billede steen_hansen Forsker
26. april 2004 - 15:25 #17
Jeg har selv ikke noget problem med det, da den ene menu kun skal figurere på nogle bestemte sider, og det kan den, selvom du skal til default.asp?emneID=1417
Avatar billede clausmo Nybegynder
26. april 2004 - 15:54 #18
det var lige præcis det jeg mente - jeg kunne selvfølgelig også lige have prøvet det, inden jeg begyndte at betvivle dit svar :-)

Så skulle det gerne komme til at virke! kan du ikke lige sende et svar, så vil jeg kvittere med nogle point.

Tak for hjælpen
Avatar billede steen_hansen Forsker
26. april 2004 - 16:02 #19
Det var så lidt. Og takker point :o)
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
Kurser inden for grundlæggende programmering

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