Autor Zpráva
replikant09
Profil *
Mohl by mi prosím někdo objasnit zápis tohoto:
ul#topmenu > li:hover > ul {width: 10em; top: 1.5em; left: -3px;}
?

Já jsem zvyklý zapisovat id(#topmenu) před prvek na začátek řádku. Co se mění, když je to zapsané takto? A co znamenají ty ">" ?
habendorf
Profil
Selektor potomka
Bubák
Profil
Je to "selektor díděte", jinak taky "selektor prvního potomka".
http://interval.cz/clanky/css2-selektory-pseudotridy-a-pseudoelementy/

Já jsem zvyklý zapisovat id(#topmenu) před prvek na začátek řádku.
Nevím, co přesně máš na mysli, ale následující dva zápisy znamenají totéž, jen první je o fous konkrétnější:
ul#topmenu > li:hover > ul {width: 10em; top: 1.5em; left: -3px;}

#topmenu > li:hover > ul {width: 10em; top: 1.5em; left: -3px;}


habendorf:
Nepředbíhej ;-)
habendorf
Profil
Bubák:
ale následující dva zápisy znamenají totéž

Neznamenají v žádném případě. První znamená ul s id topmenu, druhý znamená element s id topmenu.
Trejpa
Profil
replikant09:
Jde o selektor přímého potomka. V IE7 a IE8 funguje pouze ve standardním režimu, ve starších IE nefunguje.
<style> p>b{color:red} </style>
<p><b>červené</b> <i><b>černé</b></i> <b>a zase červené</b>
habendorf
Profil
Trejpa:
ve starších IE nefunguje

Což se dá docela dobře využít. Typicky

.uz-bylo-na-case-kocabe {height:100px;}
html>body .uz-bylo-na-case-kocabe {min-height:100px;height:auto;}

Vzhledem k tomu, jak IE6 chápe height, je dosaženo žádoucího chování. Ale to už je vlastně trochu jiný příběh ...
replikant09
Profil *
Ještě by mě zajímalo: nedá se nějaký class vyjmout z dědičnosti? Např. v třídě .hhh mám nějaké a, p, divy., ale už mám nadefinované v třídě a, p a divy obecně. Jak všechno v nějaké třídě vyjmu z dědičnosti celé css?
Chamurappi
Profil
Reaguji na Trejpu:
ve starších IE nefunguje
Ve čtyřce funguje jako selektor jakéhokoliv potomka.


Reaguji na replikanta09:
co znamenají ty ">" ?
Sice už tu zazněla správná odpověď, ale kdyby sis ji chtěl přečíst i v jiných variantách:
Jak interpretovat toto?
Neznámý znak v CSS (pro mě)
Záhadne „>“ v CSS
Hledám vysvětlení pro tag "body>div" a tag <html>

Jak všechno v nějaké třídě vyjmu z dědičnosti celé css?
Z dědičnosti? Když nastavíš cosi všem odstavcům, tak to, že nastavení ovlivňuje všechny odstavce, přece není dědičnost.
Žádná snadná cesta, jak nastavit vybraným elementům výchozí vzhled, neexistuje.
replikant09
Profil *
Jde mi o tohle, třeba:
a { color: red; }
#nejakeid .nejakyclass a { color:blue } // tohle funguje
.nejakyclass a { color:blue } // tohle nefunguje, proč?
Bubák
Profil
replikant09:
.nejakyclass a { color:blue } // tohle nefunguje, proč?
Mělo by to fungovat. Nezávazně si tipnu, že máš někde v CSS něco takového:
#nejakeid a { color:green }

Více na stránce www.jakpsatweb.cz/css/css-kaskadovani.html kapitola "Podrobnější selektor".
Pokud nenajdeš důvod, proč poslední zápis nefunguje, dej odkaz na živou ukázku.
replikant09
Profil *
Našel jsem viníka, ale ten by měl mít nižší prioritu:
v html jsou prvky poskládané takto: div(id=logomen)>ul>li 1.... , li N>ul(id=conmenu)>li(class=subconmenu)>a
Takže logomen je vlastně nejvyšší prvek. Nicméně .subconmenu se nachází někde uvnitř a proto by měl mít vyšší prioritu ne?

#logomen li a, #logomen li a:link, #logomen li a:visited {
font-size : 14pt; // bere se tato velikost
}

.subconmenu a:link {
font-size: 12px; // tato velikost se ignoruje
}
Chamurappi
Profil
Reaguji na replikanta09:
Četl jsi článek, na který tě nasměroval Bubák, nebo ho po nás chceš převyprávět?
Plaváček
Profil
replikant09:

Takže logomen je vlastně nejvyšší prvek. Nicméně .subconmenu se nachází někde uvnitř a proto by měl mít vyšší prioritu ne?

To už máš co dělat s pravidly kaskádování, konkrétně se to jmenuje specifičnost selektorů. Někdy s tím mají problém i ostřílení borci.

Doporučuji prostudovat teoretické základy, třeba zde: http://www.webtip.cz/art/wt_titulka/wt_cssserial_004.html

Čas od času si to každý kodér musí podle té vzorové tabulky (viz odkázaný článek) spočítat.
habendorf
Profil
Plaváček:
Čas od času si to každý kodér musí podle té vzorové tabulky (viz odkázaný článek) spočítat.

Nikdy jsem nic nepočítal. Když selektor nezabere, přitvrdím :o)
Plaváček
Profil
habendorf:

Mě už to párkrát život zachránilo, ale spíš v začátcích. Teď už to mám tak nějak "v hlavě". :)
panther
Profil
habendorf, Plaváček:
dejte si pozor, abyste tu nerozpoutali nějakou nechtěnou diskusi na téma „Počítat či nepočítat v CSS“.

Je to vše o zkušenostech, kterých máte oba dostatek a problém snadno vyřešíte i bez počítání (tak nějak odhadem či zmiňovaným přitvrzením). Začátečníkovi by se počítání hodit mohlo, avšak ten se málokdy dostane do situace, která by byla tak složitá a k počítání nutila - ten raději přidá nějaký element s ID či CLASS navíc, přes nějž bude stylovat.
Plaváček
Profil
panther:

Dám si pozor. Jenom jsem se snažil tazateli poradit. Ostatně - trocha teorie nikoho nezabije, že.
Chamurappi
Profil
Reaguji na panthera:
Před chvílí mi psal habendorf po ICQ, že si také dá pozor :-)

tak nějak odhadem či zmiňovaným přitvrzením
Smutné bývá, když je člověk v zájmu obecnosti postupu donucen posílit selektor přidáním body nebo html. To si pak žádá i komentář typu „tohle tady fakt není zbytečně“.

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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

0