Autor | Zpráva | ||
---|---|---|---|
replikant09 Profil * |
#1 · Zasláno: 8. 3. 2010, 08:58:22
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 |
#2 · Zasláno: 8. 3. 2010, 09:24:17
|
||
Bubák Profil |
#3 · Zasláno: 8. 3. 2010, 09:24:24 · Upravil/a: Bubák
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 |
#4 · Zasláno: 8. 3. 2010, 09:28:14
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 |
#5 · Zasláno: 8. 3. 2010, 09:35:17
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 |
#6 · Zasláno: 8. 3. 2010, 09:39:36
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 * |
#7 · Zasláno: 8. 3. 2010, 10:14:56
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 |
#8 · Zasláno: 8. 3. 2010, 11:08:44
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 * |
#9 · Zasláno: 8. 3. 2010, 11:54:24
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 |
#10 · Zasláno: 8. 3. 2010, 12:18:34
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 * |
#11 · Zasláno: 8. 3. 2010, 13:41:20
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 |
#12 · Zasláno: 8. 3. 2010, 13:44:54
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 |
#13 · Zasláno: 8. 3. 2010, 14:03:48
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 |
#14 · Zasláno: 8. 3. 2010, 15:01:09
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 |
#15 · Zasláno: 8. 3. 2010, 15:02:22
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 |
#16 · Zasláno: 8. 3. 2010, 15:13:23
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 |
#17 · Zasláno: 8. 3. 2010, 15:28:58
panther:
Dám si pozor. Jenom jsem se snažil tazateli poradit. Ostatně - trocha teorie nikoho nezabije, že. |
||
Chamurappi Profil |
#18 · Zasláno: 8. 3. 2010, 15:40:55 · Upravil/a: Chamurappi
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ě“.
|
||
Časová prodleva: 14 let
|
0