Autor Zpráva
Bender250
Profil *
Zdravím
řeším menu u stránky http://jiri-suchanek.net/index.php?page=projects_works_cs
Menu má reagovat u a:hover změnou barvy textu a pozadí na negativ:
#menu a:hover

 {

	background: #000000;

	color: #ffffff;

 }  
#menu a:link, #menu a:visited

 {

	background: #ffffff;

	color: #000000;

 }

<div id="menu">
  <a href="index.php?page=info_cs">INFO</a>
  ...
</div>


Celou dobu to fungovalo, poté jsem i v sekci Projekty menu zdvojil (vytvořil jsem submenu, které stále funguje). Problém nastal po jedné editaci, kdy jsem omylem vymazal v php podmínku která označuje zvolenou sekci, od té chvíle, co jsem to opravil to z nějakého neznámého důvodu nefunguje.
Zvláštně se chová firebug, který css k a:hover vidí, ale přeškrtne je, nepodařilo se mi zjistit co to znamená (ale musím přiznat, že firebug používám krátce a googlením významu přeškrtlého textu jsem strávil tak 5 minut).
Nejdivnější je, že úplně stejně aplikovaný css na submenu funguje.
PS: neřešit design ani obsah webu, já plním zákazníkovy požadavky a furt se některý prvky ladí.
Předem děkuji
panther
Profil
Bender250:
Zvláštně se chová firebug, který css k a:hover vidí, ale přeškrtne je
nechová se zvláštně, ale normálně. Přeškrtává neplatné deklarace a od každé zůstane jen jedna, ta platná.

Hover je přebit hned následující deklarací. Obě jsi uvedl i v [#1], stačí je jen prohodit.
Bender250
Profil *
Díky, je to funkční.
Jen abych se poučil, a:hover bylo přebito, protože pořadí pseudotříd je pevně dáno?
panther
Profil
Bender250:
Jen abych se poučil, a:hover bylo přebito, protože pořadí pseudotříd je pevně dáno?
dalo by se říci, že ano.

Lze to snadno logicky odvodit.
a:hover {background: blue} 
a {background: red}
Mám odkaz, nad kterým jsem s myší, tedy a:hover - a nastaví se modré pozadí. Zároveň ale je to pořád odkaz (bez ohledu na pozici myši), takže se nastaví červené pozadí. Modré je přebito, zapomenuto.

V opačném případě
a {background: red}
a:hover {background: blue} 
Nastav odkazu červené pozadí. Pokud na něj najedu myší, první deklarace stále platí, nastav červené pozadí a jdi stylopisem dál. Á, platí i deklarace a:hover, předchozí tedy zahoď a nastav modré pozadí.
Bender250
Profil *
Aha, myslel jsem, že se v prohlížeči vše načte a ten to pochopí po svým a má pro najetí myší svoje vlastní vlastnosti. Ale on průběžně za běhu tahá data z css.
Dá se říct, že mi to i firebug naznačoval právě změnou css vždy podle najetí na určitý místo - fakt šikovná aplikace.

Jestli se tu zamykají témata, pak ho můžete zamčít.
panther
Profil
Bender250:
myslel jsem, že se v prohlížeči vše načte a ten to pochopí po svým
to by bylo dost nevyzpytatelné :-)

CSS soubor se čte postupně, proto platí, že později, resp. níže zapsaná deklarace přebije tu předchozí. Specifičtější selektor má přednost i přestože by byl v kódu první.
<style>
menu a {background: red}
a {background: blue}
</style>
<menu>
  <li><a href="">Odkaz cerveny</a>
</menu>
<a href="">Odkaz modry</a>
Odkazy budou modré, odkazy v menu červené.

<style>
menu a {background: red}
div a {background: blue}
</style>
<div>
  <menu>
    <li><a href="">Odkaz modry</a>
  </menu>
  <a href="">Odkaz modry</a>
</div>
Odkazy budou všechny modré.


Jestli se tu zamykají témata, pak ho můžete zamčít.
zamykat mohou jen registrovaní uživatelé, ale není třeba. Není důvod nenechat zde odemčíno.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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