Autor Zpráva
DiDu
Profil
Ahoj, potřebuji zvýraznit aktivní odkaz pomocí javascriptu nebo css, ale ne php.
Zatím mi fungovalo toto:

<a href="nekam1.htm" target="Fr2" name="odkaz1" onClick="this.style.fontWeight = 'bold'; odkaz2.style.fontWeight = ''; odkaz3.style.fontWeight = '';">odkaz1</a>
<a href="nekam2.htm" target="Fr2" name="odkaz2" onClick="this.style.fontWeight = 'bold'; odkaz1.style.fontWeight = ''; odkaz3.style.fontWeight = '';">odkaz2</a>
<a href="nekam3.htm" target="Fr2" name="odkaz3" onClick="this.style.fontWeight = 'bold'; odkaz1.style.fontWeight = ''; odkaz2.style.fontWeight = '';">odkaz3</a>

Ale moje menu má mít 20 položek. Jak to mám udělat? Prosím polopatě, jsem začátečnik. Děkuji.
Taps
Profil
DiDu
Odkaz můžeš zvýraznit pomocí css a to pomocí atributu a:active a nebo to zkus polopatě -> http://polopate.jakpsatweb.cz/index.php?page=include4. Ještě dodám že pomocí javascriptu by to šlo pomocí události onmouseover onmouseout
DiDu
Profil
Říkám, že nechci php a a:active taky nevyhovuje. Přestane být aktivní kliknutím na jiný odkaz. Ale já chci měnit zvýraznění pouze při kliknutí na položku menu.
tajny spion
Profil
DiDu
Pomoci PHP ohlidat, kde se prave nachazis a tu polozku zvyraznit. Presne nvm jak takze vic neporadim.
tajny spion
Profil
DiDu
Btw, web by nemel byt zavisly na JS, drtiva vetsina jde pomoci CSS. Kup si knihu Mistrovstvi v CSS a pochopis.
peta
Profil
1.
a) PHP: pomoci PHP a regularnich vyrazu hledas v HTML kodu
<a href="jmenostranky.php
a to si prepises a <a class="sel" href=...
(cili celou cast menu si das do string promenne $str = "...";
pouzijes funkci replace - cz.php.net/str_replace ;
a pak echo $str;)

b) Totez lze udelat pomoci JS
jaksatweb - javascript - priklady - gethttpvars
str = idMenu.innerHTML;
str = str.replace(...)
idMenu.innerHTML = str;

2.
a)
PHP generujes menu z nejakeho pole (array(1,2,3)) pomoci nejakeho scriptu a tomu reknes, kterou polozku ma zvyraznit.
Jako ja mam treba knihovnu na SELECT, A HREF, tak tam pridat polozku menu
$x = array(
'index.php'
);
foreach($x as $a=>$b)
echo "<a href="".$a."">ahoj</a>";

b) totez lze pomoci JS (new Array(1,2,3))

3. pomoci JS DOm se muzes dostat do elementu s ID menu a v nem ke vsem odkazum A a u nich si zkontrolovat parametr href jestli se rovna tvemu
Neco, jako pouzivam na
http://peter-mlich.wz.cz/x/sort/studium_programy3.htm
na serazovani
Radulina
Profil *
Ahoj, já mám podobný problém a a:active mi nefunguje :( zbarví se mi ten odkaz v menu jen když na něj klikám, ale jak dám myš pryč, tak má zase původní barvu
Chci jen docílit toho, aby odkaz (stránka), na které zrovna jsem, byla v menu barevně odlišená...

Takhle vypadá můj zápis pro tu lištu s menu, co mám doplnit, aby mi ten odkaz třeba zčernal, když je aktivní?

#lista1 {
margin: 0px auto;
padding: 8px;
text-align: center;
font-size: 13pt;
width: 804px;
background-color: #d2691e;
}

#lista1 a {
text-decoration: none;
color: #fff5ee;
background-color: #d2691e;
font-weight: bold;
padding: 8px;
}
DiDu
Profil
Radulina:
Musíš mít definované styly pseudotříd v tomto pořadí: link, visited, hover a active. To znamená, že poslední active se uplatní na vzhled aktivního odkazu.

Můj problém výše zmíněný to ale neřeší. Active lze použít pouze, pokud nemáš na stránce už žádný jiný odkaz, který s menu nesouvisí, např. adresu, obrázek jako odkaz, kontextový odkaz atd. Kliknutím na jakýkoliv jiný odkaz totiž aktivní odkaz přestane být aktivní. Osobně active vůbec nepoužívám, má význam pouze u primitivních stránek.
Radulina
Profil *
DiDu: to jsem si vůbec neuvědomila, odkazy tam samozřejmě mám, nebo spíše budu mít až ty stránky naplním, v tom případě nevím, jak to v CSS vyřešit a nic jiného než CSS neumím :(
DiDu
Profil
Radulina: Pokud vždy menu načítáš s aktivní stránkou, pak stačí na příslušnou stránku přiřadit nějaký identifikátor k aktivnímu odkazu - ve stylech si tento aktivní nadefinuješ jinou barvou. Pokud ale používáš rámy, jako já, kde mám menu v samostatném html souboru, pak nevím. Stále to mám tak, jak mám uvedeno na začátku v prvním příspěvku. Jen jsem nastavení svých 20 odkazů přesunula do externího souboru, kde mám funkci, která vždycky všechny položky menu nastaví na původní hodnotu a nakonec aktivní na tu aktivní hodnotu. V externím a funkcí to mám proto, aby zápis za onClick nebyl tak dlouhý a taky to používám v různých menyčkách, kde mám stejná name u odkazů.

Peta: Tohle totiž nechápu. Nedokážu dostat jakoukoliv proměnnou do jména objektu:
jmenoodkazu.style.fontWeight = 'bold' a potřebovala bych něco jako: proměnná.style.fontWeight = 'bold'. Prostě to takto nejde.
J
Profil *
Radulina - příklad:
Pro každou stránku trošku jinak menu:

pro první stránku:
<a class="aktivni" href="...">položka 1</a>
<a href="...">položka 2</a>
<a href="...">položka 3</a>

pro druhou stránku
<a href="...">položka 1</a>
<a class="aktivni" href="...">položka 2</a>
<a href="...">položka 3</a>

atd.

A pro třídu .aktivni předepsat v css třeba jinou barvu textu, jinou barvu pozadí atp.
Radulina
Profil
Teda jak jsem se radovala, jak to hezky vyřeším pomocí poslední rady, ale ono to nefunguje :( co sakra dělám blbě?

takhle to mám zapsaný ve stylu
.aktivni {
background-color: black;
color: #d2691e;
}

a takhle pak ve zdrojáku
<a class="aktivni" href="index.html">Úvod</a>

A ještě jeden dotaz, né až tak do tohohle tématu. Ale když si to otevřu ve Firefoxu, tak mi horní obrázek odskakuje doprava, ale lišta s menu co je pod tím zůstane v pohodě, nevíte čím to může být a jak to spravit, aby se mi to zároveń nerozházelo v exploreru? Jinak už jsem kupodivu všechno sladila tak, aby to v exploreru i ve firefoxu vypadalo tak jak má...
Str4wberry
Profil
Radulina
a.aktivni — styluješ totiž odkaz.
Radulina
Profil
takže tak jak to mám mám předepsat před .aktivni pouze a? tak mi to ale taky nefunguje :(

jéé funguje, ale musela jsem si to hodit takhle, mělo mi to dojít hned no...
#lista1 a {
text-decoration: none;
color: #fff5ee;
background-color: #d2691e;
font-weight: bold;
padding: 8px;
}

#lista1 a.aktivni {
color: black;
}

Díky mnohokrát :)
toretak
Profil *
mam problem stejny jako Didu, nicmene sem na tom o neco lepe.. ja sem to vyresil. Moje reseni vsak nefunguje ve firefoxu, budu vdecny za jakykoli napad.

moje implementace:
onClick volam funkci ktera mimo jine provede toto :
document.getElementById(objekt).className ="current";
ale jak rikam nejde to ve ff .. ale aspon neco...

(diakritiku a interpunkci nepouzivam, a timto se za to omlouvam)

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0