Gå til innhold

Hjelp i menu?


Anbefalte innlegg

Skrevet

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?

Videoannonse
Annonse
Skrevet (endret)
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
Skrevet (endret)

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
Skrevet
Gå for Arve Systad sin metode.

Fordi at?

 

Det er jo mykje meir ryddig å berre legge til ein klasse på BODY-elementet enn å begynne å legge klasser på LI-elementet?

Skrevet
Fordi da kan man bruke serverside-skripting, og dermed være hardcore på web :roll:

Begge metodane er jo åpen for bruk av serverside-scripting.

Eg bruker omtrent samme metode som AfroDude beskriver på mi side.

Skrevet

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.

Skrevet

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.

Skrevet

Det kommer vel ann på om du vil ha rotet i CSS- eller PHP-filen. Men er enig i at metoden jeg skrev er mindre rotete ja, selv om Arve sin utgjør noen KB mindre kode.

Skrevet
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

Skrevet
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. :)

Skrevet

Sikker på at det ikkje går an å gjere det enklare?

 

Finn seksjon du er på => Når den seksjonen blir skriven ut i menyen legg til klasse "omfg" på den.

 

Elns.

 

Ikkje sikker på akkurat korleis det må gjerast, men eg er nesten sikker på at det går.

Skrevet

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 :)

Skrevet

$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>

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...