Gå til innhold

Hjelp i menu?


Anbefalte innlegg

Jeg vett at emne sier ikke stort men det er vanskelig å forklare det jeg menner.

 

Jeg har laget en meny og fungere bra, menyen består av: Forside, Om meg, Linker, Kontakt

 

Det jeg er utt etter er om hvordan man får det til at når jeg klikker på "Om meg" skal teksten være en annen farge (slik at brukeren vet på hvilken side man er). Håper dere forstår hva jeg menner.

 

Først tenkte jeg å bruke cookies (php) men så tenkte dere kan (vet) en bedre måte. Fordi mange har cookies bllokert.

 

Så hva tror dere er best?

Lenke til kommentar
Videoannonse
Annonse
Det er en state du kan style i css, men husker ikke hva det er, ikke :focus, kanskje :active.

Nei. CSS kan ikkje finne ut kva slags del av sida ein er på.

 

Til dette må du bruke eit serverside-språk, og gi "den aktive delen av menyen" ein eigen klasse, som du igjen kan stilisere med CSS.

 

Dersom du har eit skript som enten inkluderer filer med innhald eller hentar frå ein database burde det ikkje vere verre enn eit par linjer som finn ut kva slags seksjon du er på, og gir ein klasse til det aktuelle menyelementet.

Endret av Arve Systad
Lenke til kommentar

Eller så kan du gi hvert menyalternativ og sidene hver sin ID. Lettere med et eksempel:

 

index.html:

<html>
<body id="index_html">
<ul id="menu">
<li id="forsiden"><a href="index.html">Forsiden</a></li>
<li id="om_meg"><a href="meg.html">Om meg</a></li>
<li id="linker"><a href="linker.html">Linker</a></li>
<li id="kontakt"><a href="kontakt.html">Kontakt</a></li>
</ul>
</body>
</html>

meg.html:

<html>
<body id="meg_html">
<ul id="menu">
<li id="forsiden"><a href="index.html">Forsiden</a></li>
<li id="om_meg"><a href="meg.html">Om meg</a></li>
<li id="linker"><a href="linker.html">Linker</a></li>
<li id="kontakt"><a href="kontakt.html">Kontakt</a></li>
</ul>
</body>
</html>

CSS:

body#index_html ul#menu li#forsiden a,
body#meg_html ul#menu li#om_meg a,
body#linker_html ul#menu li#linker a,
body#kontakt_html ul#menu li#kontakt a {
 color: #000000;
}

Endret av AfroDude
Lenke til kommentar

Forskjellen blir det her dersom serverside koding blir brukt i begge tilfella:

 

På min metode vil du sette (eventuellt ein ekstra) ein klasse på <li> eller <a> elementet som er aktuelt å endre på, og har en forhåndsbestemt ting i stilarket som fikser det.

 

På AfroDude sitt tilfelle må du ha en del meir i stilarket for ei stor side (mange undersider = mange selektorar på samme stilregel), og du byttar ut ein klasse/ID i body-elementet istede for li eller a.

 

Så - bruk den du sjøl føler er best.

Lenke til kommentar

Grunnen til at eg ikkje liker metoden som du foreslår, Arve, er at det blir så mykje meir rotete enn AfroDude sin.

 

AfroDude sin kan gjerast så enkelt som dette:

<body class="<?=$_GET['seksjon']; ?>">

 

...mens med din metode må du for kvar side sjekke kva $_GET['seksjon'] er, og det blir svært mykje rot, syns eg.

Lenke til kommentar
Grunnen til at eg ikkje liker metoden som du foreslår, Arve, er at det blir så mykje meir rotete enn AfroDude sin.

 

AfroDude sin kan gjerast så enkelt som dette:

<body class="<?=$_GET['seksjon']; ?>">

 

...mens med din metode må du for kvar side sjekke kva $_GET['seksjon'] er, og det blir svært mykje rot, syns eg.

Joa, sant det - i dette tilfellet.

 

Tenk deg ei stor kompleks side med la oss sei 40 undersider, som igjen kanskje har undersider. Der trur eg det hadde vert enklare å gi <li> eller <a> en egen klasse for å unngå et stilark der det er mange kilobyte med selektor :p

Lenke til kommentar
Grunnen til at eg ikkje liker metoden som du foreslår, Arve, er at det blir så mykje meir rotete enn AfroDude sin.

 

AfroDude sin kan gjerast så enkelt som dette:

<body class="<?=$_GET['seksjon']; ?>">

 

...mens med din metode må du for kvar side sjekke kva $_GET['seksjon'] er, og det blir svært mykje rot, syns eg.

Joa, sant det - i dette tilfellet.

 

Tenk deg ei stor kompleks side med la oss sei 40 undersider, som igjen kanskje har undersider. Der trur eg det hadde vert enklare å gi <li> eller <a> en egen klasse for å unngå et stilark der det er mange kilobyte med selektor :p

...men da igjen blir index-fila fylt med rot.

Tenk for deg å skrive if-testen til alle dei førti undersidene. Kor kjekt hadde vel ikkje det vore? :p

 

Eg hadde heller foretrukke å skrive #start #products { color: #333 } førti ganger, framfor å skrive if($_GET['seksjon'] == 'start') { $class = 'active' } førti ganger. :)

Lenke til kommentar

Den beste måten er å lese menyen inn ifra en ekstern fil via php, og så skjekke mens man printer hver linje om det er den aktive linken.

Er det det kan man ganske enkelt sette på 'class="active_link"'

Gjort det mange ganger, og det kan også brukes med include rutinen så man bare inkluderer filer som ligger i listen, ero mer sikkert :)

Lenke til kommentar

$categoryarray = array("nyheter", "om", "hjem", "lenker");

<div id="menu">
	<ul>
<?php
					foreach ($categoryarray as $line) {
			if ($do == $line) {
				print("\t\t\t" . '<li class="selected"><a href="'.$line.'">'.$line.'</a></li>'."\n");
			} else {
				print("\t\t\t" . '<li class="unselected"><a href="'.$line.'">'.$line.'</a></li>'."\n");					
			}
		}
	?>
	</ul>
</div>

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...