Avatar billede steen_hansen Forsker
14. oktober 2003 - 13:27 Der er 32 kommentarer og
2 løsninger

Kan man blande ASP/VB og CSS?

Jeg forsøger at lave en menu á la den på www.bt.dk/.

Her er standard "FORSIDE". Menupunktet "FORSIDE" er sort, resten er hvide.

Trykker man f.eks. "KRIMI", er denne nu sort, de øvrige er hvide etc.

Hvordan laver man det smartest? Jeg har forsøgt at lege med lidt ASP, for at se, om jeg kunne forstå princippet i det, men det er ikke brugbart, da jeg håber det kan ligge i mit CSS-dokument. Og så virker det forøvrigt ikke :o/
<%
'Finder stiangivelsen
sURL = Request.ServerVariables("SERVER_NAME") & Request.ServerVariables("URL")
sURL = Left(sURL, (InStrRev(sURL, "/")))

If sURL = "http://www.include.dk/hansens/" Then
    strClass = "#FF0000"
Else
    strClass = "#393939"
End If
If sURL = "http://www.MinSide.dk/mappe1/" Then
    strClass = "#FF0000"
ElseIf
If sURL = "http://www.MinSide.dk/mappe1/mappe2/" Then
    strClass = "#FF0000"
Else
    strClass = "#393939"
End If
%>

<table>
<tr>
<td width="100%" bgcolor="<%=strColor%>"><a href="/mappe1/">Link1</a></td>
</tr>
<tr>
<td width="100%" bgcolor="<%=strColor%>"><a href="/mappe1/mappe2/">Link2</a></td>
</tr>
</table>
Avatar billede netro Nybegynder
14. oktober 2003 - 13:35 #1
Prøv med:

If sURL = "www.include.dk/hansens/" Then
    strClass = "#FF0000"
ElseIf sURL = "www.MinSide.dk/mappe1/" Then
    strClass = "#FF0000"
ElseIf sURL = "www.MinSide.dk/mappe1/mappe2/" Then
    strClass = "#FF0000"
Else
    strClass = "#393939"
End If
Avatar billede netro Nybegynder
14. oktober 2003 - 13:41 #2
Alternativt skal du lave flere stylesheets, som du henviser til - alt efter hvilken side vi er på. F.eks.:

If sURL = "www.include.dk/hansens/" Then
    Style = "style1"
Else
    Style = "style2"
End If

Response.Write "<head><link rel='stylesheet' type='text/css' href='" & Style & ".css'></head>"
Avatar billede steen_hansen Forsker
14. oktober 2003 - 13:56 #3
Eller

CSS-dokument:

A.menuA
{
    WIDTH: 100%; DISPLAY: block;
    PADDING: 5px 0px 5px 5px;
    FONT:bold 11px Verdana, Arial, Helvetica;
    TEXT-DECORATION: none;
    COLOR: white;
}
A.menuA:active, A.menuA:link, A.menuA:visited
{
    BACKGROUND-COLOR: #999999;
    COLOR: E7E7E7;
    TEXT-DECORATION: none;
}
A.menuB
{
    WIDTH: 100%; DISPLAY: block;
    PADDING: 5px 0px 5px 5px;
    FONT:bold 11px Verdana, Arial, Helvetica;
    TEXT-DECORATION: none;
    COLOR: white;
}
A.menuB:active, A.menuB:link, A.menuB:visited
{
    BACKGROUND-COLOR: #FFF000;
    COLOR: E7E7E7;
    TEXT-DECORATION: none;
}

menu.asp kunne se sådan her ud:

<%
If sURL = "www.MinSide.dk/mappe1/" Then
    Class = "menuA"
ElseIf sURL = "www.MinSide.dk/mappe1/mappe2/" Then
    Class = "menuB"
ElseIf sURL = "www.MinSide.dk/mappe1/mappe3/" Then
    Class = "menuB"
ElseIf sURL = "www.MinSide.dk/mappe1/mappe4/" Then
    Class = "menuB"
Else
    strClass = "#393939"
End If

<table>
    <tr>
        <td><a href="/mappe1/" class="<%=Class%>">Link1</a>
        <td><a href="/mappe1/mappe2/" class="<%=Class%>">Link2</a>
        <td><a href="/mappe1/mappe3/" class="<%=Class%>">Link3</a>
    </tr>
</table>


Eller ...?
Avatar billede netro Nybegynder
14. oktober 2003 - 14:09 #4
Ja, det er en udmærket måde at gøre det på.
Avatar billede steen_hansen Forsker
14. oktober 2003 - 15:29 #5
Hvorfor virker det ikke? Og burde det ikke kunne gøres i CSS alene? :o(

CSS:

A.menu1
{
    WIDTH: 100%; DISPLAY: block;
    PADDING: 5px 0px 5px 5px;
    FONT:bold 11px Verdana, Arial, Helvetica;
    TEXT-DECORATION: none;
    COLOR: white;
}
A.menu1:active, A.menu1:link, A.menu1:visited
{
    BACKGROUND-COLOR: #999999;
    COLOR: E7E7E7;
    TEXT-DECORATION: none;
}
A.menu1:hover
{
    BACKGROUND-COLOR: #000000;
}
A.menu2
{
    WIDTH: 100%; DISPLAY: block;
    PADDING: 5px 0px 5px 5px;
    FONT:bold 11px Verdana, Arial, Helvetica;
    TEXT-DECORATION: none;
    COLOR: white;
}
A.menu2:active, A.menu2:link, A.menu2:visited
{
    BACKGROUND-COLOR: #999999;
    COLOR: E7E7E7;
    TEXT-DECORATION: none;
}
A.menu2:hover
{
    BACKGROUND-COLOR: #000000;
}

menu.asp:

<%
sURL = Request.ServerVariables("SERVER_NAME") & Request.ServerVariables("URL")
sURL = Left(sURL, (InStrRev(sURL, "/")))

If sURL = "www.MinSide.dk/mappe1/" Then
    strClass = "menu1"
ElseIf sURL = "www.MinSide.dk/mappe1/mappe2/" Then
    strClass = "menu1"
ElseIf sURL = "www.MinSide.dk/mappe1/mappe3/" Then
    strClass = "menu1"
Else
    strClass = "menu2"
End If
%>

<a href="/mappe1/mappe2/" class="<%=strClass%>">Link2</a>
Avatar billede netro Nybegynder
14. oktober 2003 - 15:37 #6
Umiddelbart ser det rigtig nok ud. Får linket sort baggrund, når du fører musen over?
Avatar billede steen_hansen Forsker
14. oktober 2003 - 15:46 #7
Ja, det gør det. Men det burde da kunne klares med CSS alene, burde det ikke?
Avatar billede netro Nybegynder
14. oktober 2003 - 16:22 #8
Det eneste du her skal bruge ASP til, er jo at finde ud af, hvilken side brugeren er på. Virker IF-sætningerne ikke?
Avatar billede steen_hansen Forsker
14. oktober 2003 - 16:38 #9
nope :o(
Avatar billede netro Nybegynder
14. oktober 2003 - 17:03 #10
Og du husker at skrive alle URL's med små bogstaver?

"www.minside.dk/mappe1/"
Avatar billede steen_hansen Forsker
14. oktober 2003 - 17:06 #11
yeps
Avatar billede netro Nybegynder
14. oktober 2003 - 17:09 #12
Udskriv sURL, gå ind på de forskellige sider og se, om URL'en returneres korrekt i forhold til de URL's der indgår i IF-sætningerne.

Response.Write sURL
Avatar billede steen_hansen Forsker
14. oktober 2003 - 18:09 #13
Det har jeg prøvet, de kommer fint ud. Prøvede først med http:// foran. Det fandt jeg ud af man ikke skal :o)
Avatar billede netro Nybegynder
14. oktober 2003 - 18:12 #14
Nu har du vel lavet en henvisning til CSS-filen i menu.asp, ik'?
Avatar billede steen_hansen Forsker
14. oktober 2003 - 18:36 #15
Jo, mit CSS-dokument virker upåklageligt, ingen problemer dér :o)

Er det i orden vi deler pointene? Jeg har ikke fået løst problemet, men du skal have noget for indsatsen. Jeg tror jeg skal oprette spørgsmålet under CSS istedet. Måske ....?
Avatar billede steen_hansen Forsker
14. oktober 2003 - 18:38 #16
Man må kunne bruge A.menu1:selected?
Avatar billede netro Nybegynder
14. oktober 2003 - 18:38 #17
Ja, selvfølgelig. Men som jeg forstår dig, er problemet dine IF-sætninger, og det har jo som bekendt intet med CSS at gøre.
Avatar billede steen_hansen Forsker
14. oktober 2003 - 18:39 #18
Det kan man ikke  :o/
Avatar billede netro Nybegynder
14. oktober 2003 - 18:39 #19
Du kan godt ændre classes med javascript, men det har ikke rigtig noget formål her.
Avatar billede steen_hansen Forsker
14. oktober 2003 - 18:41 #20
Ja, men jeg tror alligevel ikke man behøver at bruge VB-scripting. Jeg tror problemet skal løses med CSS.

Du skal have 8740603796509743 tak for hjælpen :o) Kommer du på nogle fikse idéer, håber jeg du giver lyd :o)

Må smutte, snakkes måske senere
Avatar billede netro Nybegynder
14. oktober 2003 - 18:44 #21
Velbekomme :-) Men du kan ikke lave en dynamisk løsning med CSS alene. Så skal du prøve at høre javascript-gutterne, om de kan bakse noget sammen til dig, hvis ikke du vil bruge ASP.
Avatar billede steen_hansen Forsker
14. oktober 2003 - 21:46 #22
Det har du sikkert ret i :o)

Du har ikke prøvet det af selv? Det BURDE virke; jeg kan ikke se, hvad der skulle være galt.
Avatar billede netro Nybegynder
14. oktober 2003 - 21:48 #23
Jo, det har jeg lavet adskillige gange, men jeg kan ikke se, hvad der går galt i dette eksempel, når du siger, at stierne passer.
Avatar billede steen_hansen Forsker
14. oktober 2003 - 21:56 #24
Og det virker hos dig?
Avatar billede netro Nybegynder
14. oktober 2003 - 22:08 #25
Ja, men det er jo viklet ind i adskillig andet kode, så det er svært lige at give dig et færdigt eksempel.
Avatar billede steen_hansen Forsker
14. oktober 2003 - 22:15 #26
Fint nok! Jeg bokser lidt med det, for det SKAL virke. I teorien, ihvertfald :o)

Vi snakkes
Avatar billede steen_hansen Forsker
14. oktober 2003 - 22:32 #27
Lige en sidste bemærkning, jeg har set hvor det går galt:

Når

sURL = "http://www.minside.dk/mappe1/

så bliver samtlige celler i den farve, når området er valgt. Der bliver altså ikke skelnet mellem, om alle de andre links er på samme URL.

Dvs. de skal defineres først (Dim)?
Avatar billede netro Nybegynder
14. oktober 2003 - 22:53 #28
Har jeg misforstået dig fuldstændigt?

Skal alle cellerne ikke have samme class afhængig af hvilken side, man er på?
Avatar billede steen_hansen Forsker
14. oktober 2003 - 22:57 #29
Nej, som jeg skrev øverst, så skal det fungere på samme måde som på f.eks. www.bt.dk. Når man trykker på "KRIMI", er det linket "KRIMI", der er sort. resten af linksene er hvide. Vælger man et andet menupunkt, bliver det sort, så man hele tiden kan orientere sig.
Avatar billede netro Nybegynder
15. oktober 2003 - 01:38 #30
Nå, sådan ja! Så kan du lave en lille løkke. Følgende skal selvfølgelig rettes til, men jeg håber, du fanger idéen i det.


<style type='text/css'>
  .selected {
      color:red;
  }
  .ordinary {
      color:black;
  }
</style>

<%
DenneURL = LCase(Request.ServerVariables("SERVER_NAME") & Request.ServerVariables("URL"))

URLs = Array("www.include.dk/hansens/", "www.MinSide.dk/mappe1/", "www.MinSide.dk/mappe1/mappe2/")

For Sidenr = 0 To UBound(URLs)
  If LCase(URLs(Sidenr)) = DenneURL Then
      Response.Write "<font class='selected'>" & Sidenr & "</font>"
  Else
      Response.Write "<font class='ordinary'>" & Sidenr & "</font>"
  End If
Next
%>
Avatar billede steen_hansen Forsker
15. oktober 2003 - 07:41 #31
Hej Netro, kan du ikke lige svare på http://www.eksperten.dk/spm/414110?

Dit sidste indlæg fik mig på rette spor :o)

<%
sURL = Request.ServerVariables("SERVER_NAME") & Request.ServerVariables("URL")
sURL = Left(sURL, (InStrRev(sURL, "/")))

Dim sURL01, sURL02, sURL03
sURL01 = "www.minside.dk/mappe1/"
sURL02 = "www.minside.dk/mappe1/mappe2/"
sURL03 = "www.minside.dk/mappe1/mappe3/"
%>

I menuen:

<a href="/mappe1/" class="<% If sURL = sURL01 Then Response.Write "menu1" Else Response.Write "menu2" End If %>">Hjem</a>
Avatar billede steen_hansen Forsker
15. oktober 2003 - 07:42 #32
Og når man tænker ordentligt efter, er det så indlysende! *klask på panden* :oD
Avatar billede netro Nybegynder
15. oktober 2003 - 15:03 #33
Ja, det er nemlig ikke særlig svært. Jeg skulle bare forstå dine hensigter ;)
Avatar billede steen_hansen Forsker
15. oktober 2003 - 16:25 #34
Det funker bare! Endnu en gang tak for hjælpen :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