Avatar billede pollas Nybegynder
19. september 2003 - 17:25 Der er 8 kommentarer og
1 løsning

a:active v/include filer

Jeg har en menu, hvor jeg bruger css fast roll-overs (http://www.pixy.cz/blogg/clanky/cssnopreloadrollovers/), altså css'er sig ud af rolloveren. Men menuen er i en include-fil, hvorfor active-staten ikke 'huskes', når man trykker på linket... Hvordan klarer man smartest det? Siderne er egentlig .asp, så man kunne vel smide en querystring-parameter med og proppe den ind i en class eller noget...hmm...

Anyone?
Avatar billede lklingenberg Nybegynder
19. september 2003 - 22:50 #1
Jeg har en model, men nogen vil nok finde den lidt kluntet:

Lav stylesheetet således:
#menu a {
display: block;
width: 150px;
margin: 0;
padding: 10px 0 10px 32px;
font: bold 10px/1 sans-serif;
color: #f90;
background: url("btn.gif") top left no-repeat;
text-decoration: none;
}

#menu a:hover {
background-position: 0 -39px;
color: red;
}

#menu a:active {
background: url("btn.gif") 0 -78px no-repeat;
color: black;
}

#active a {
display: block;
width: 150px;
margin: 0;
padding: 10px 0 10px 32px;
font: bold 10px/1 sans-serif;
color: #f90;
background: url("btn.gif") 0 -78px no-repeat;
text-decoration: none;
}

#active a:hover {
background-position: 0 -39px;
color: red;
}

#active a:active {
background: url("btn.gif") 0 -78px no-repeat;
color: black;
}

Angiv menuen således:

<% If Session("page") = "index" Then %>
<div id="active">
<% Else %>
<div id="menu">
<% End If %>
<a href="index.asp">Menu item 1</a><br>
</div>
<% If Session("page") = "index2" Then %>
<div id="active">
<% Else %>
<div id="menu">
<% End If %>
<a href="index2.asp">Item no. 2</a><br>
</div>
<% If Session("page") = "index3" Then %>
<div id="active">
<% Else %>
<div id="menu">
<% End If %>
<a href="index3.asp">Another (3)</a><br>
</div>
<% If Session("page") = "index4" Then %>
<div id="active">
<% Else %>
<div id="menu">
<% End If %>
<a href="index4.asp">Menu item 4</a><br>
</div>
<% If Session("page") = "index5" Then %>
<div id="active">
<% Else %>
<div id="menu">
<% End If %>
<a href="index5.asp">One more (5)</a>
</div>

Og angive derefter på samtlige sider:
<% Session("page") = "index" %>
<% Session("page") = "index2" %>
<% Session("page") = "index3" %>
etc.
Avatar billede lklingenberg Nybegynder
19. september 2003 - 22:52 #2
Det kan naturligvis også gøres vha. en Querystring men jeg holder af pæne URL'er og bruger derfor gerne session objektet (men prøver at undgå at misbruge det :-)
Avatar billede roenving Novice
21. september 2003 - 11:50 #3
-- og det lyder som om, det måske er fordi du opfatter a:active, som noget der henviser til en aktuel vist side ...

a:active betyder at der er et musetryk igang på linket -- altså kun mens du holder knappen på musen nede !-)
Avatar billede lklingenberg Nybegynder
21. september 2003 - 12:13 #4
ja, her bliver den jo også anvendt som indikator for hvilken side der vises. Det er der vel i princippet ikke noget galt i, men jeg medgiver at det er to forskellige ting.
Avatar billede roenving Novice
21. september 2003 - 12:17 #5
>>lklingenberg

-- jeg tror også, at det er det pollas efterspørger !-)
Avatar billede pollas Nybegynder
22. september 2003 - 19:58 #6
Nej, selvfølgelig ikke - er ude efter en markering af den aktuelle side - og det er selvfølgelig egetnlig ikke et stylesheet-issue....doh....
Avatar billede lklingenberg Nybegynder
25. september 2003 - 10:12 #7
->pollas:
Afslutter du? Hvis ikke du har fået noget du kan bruge, så gi' dig selv points.
Avatar billede pollas Nybegynder
25. september 2003 - 10:35 #8
Takker ;-)
Avatar billede lklingenberg Nybegynder
25. september 2003 - 10:38 #9
Takker selv ;-)
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