Uživatel:Juandev/Problémy/Webdesign/Webdesign s Molly E. Holszchlag/pribylcar.eu
Tak jsem začal dělat stránky do šablony. Nicméně je třeba si to upravit k obrazu svému a tak zkoumám co a jak.
Problémy
[editovat]Problém 1: Zrušit efekty odkázaného textu
[editovat]Nějak se mi to nedaří a tak jsem se zeptal na kanále CSS, kde mě vysvětlily, že si to mám nastudovat selektory a dali mi k tomu pár odkazů:
- http://www.w3.org/TR/CSS21/selector.html
- http://www.w3.org/TR/2009/WD-css3-selectors-20090310/
- http://css.maxdesign.com.au/selectutorial/
- http://www.csarven.ca/css-specificity-and-selectors
- http://penguin.theopalgroup.com/cgi-bin/css3explainer/selectoracle.py
Což mě přišlo trochu moc, když mi říkají, že mám problém napřed samostatně vyřešit a když už si nevím rady, tak lézt na ten kanál. A já se ptám a jak vědí, jestli jsem se před tím již nepokoušel problém vyřešit? - Prostě blbí ajťáci! A pak mi říkají, že mám zavřít IRC a jít si to nastudovat, tak mě to dopálilo a říkám, že to je jedna cesta druhá cesta je se zeptat. A oni, že ne - prostě blbí ajťáci! Nicméně tam byl jeden týpek co mě uklidnil a říká že jo, že tam mám zústat a ptát se. Sláva - procetno blbejch ajťáků se snižuje.--Juandev 25. 7. 2010, 19:44 (UTC)
- Napadá mě taková hypotetická otázka, jak dlouho si budu pamatovat znalost, kterou mi někdo řekne na IRC, nebo ji budu několik hodin hledat v literatuře? Je zde nějaký rozdíl v osvojení této znalosti, že musím volit ten pomalejší způsob? Já už jsem jednu knihu o CSS přečetl a už jsem několik příkladů cvičil, tak proč si někteří myslí, že si to mám přečíst a nemám na online pomoc nárok?--Juandev 25. 7. 2010, 19:44 (UTC)
No nic, tak vzhůru do toho:
- očividně je to několik linků o tom samém, takže si to přečtu z Erica a použiji možná jen ten poslední link
- tak spíš to beru co to způsobuje, že ve stavu hover se mi mění barva. Už jsem objevil, že je změna nastavena pro kontajner obsah jiná, ale dumám, proč mi to nejde přebít
- tak asi nezbyde nic jiného než otevřít toho Erica
- text-decoration se dědí, takže se může flipnout k ačku - ok
- podle molly i mě by to mělo fungovat, ale zřejmě se mi tam mlátí styly, nebo mám někde nějakou drobnou chybičkou - která se vždy umí nafouknout na velký problém
- listuju v Ericovi, očividně se vlastnost color dědí, tak proč ji nemohu prostě změnit v tomto boddě?!
- tak problém nakonec odhalen, prostě se za danou hodnotu prskne !important, která to přebije, čili například #prvni a { color: black; } mohu prebit .druha a color: { white !important; }
- nicméně problém se specifičností je velmi zajímavý. Jo a ještě jedna vět, každou deklaraci musím označit za důležitou, nestačí jen jednu. Vysvětluje, že při použití inline stylů opravdu vyhrává to co jde první v dokumentu, tedy více nahoře. Při použití externího stylopisu, se ale specifičnost vypočítává:
- browser stylopis analizuje tak, že každému selektoru přidělí hodnotu:
- 1000 je nejvyšší hodnota, kterou má vložený inline styl, každý vložený inline styl má jednu hodnotu, ty se tedy nijak nesčítají
- 0100 je hodnota ID, pokud je jich více, je možno přičítat
- 0010 je hodnota atributu class, i zde je možno přičítat --> sem patří i pseudotřídy, např. :hover
- 0001 je nejnižší hodnota, je to hodnota všech prvků a pseudoprvků
- platí tedy, že 0010 je víc než 0001, ale i 0200 je víc než 01017
- výpočet specifičnosti se dělá tak, že se hromadné pravidlo rozloží na drobné a pak se to počítá u každého zvlášť, z logického důvodu se ale pravidla nesčítají
- univerzální selektor * má specifičnost 0000, to je ale víc než specifičnost žádná, kterou mají zděděné selektory
- čili pokud se mi stane, že vyrobím (jak se mi stalo) styl tak, že prvek má nižší specifičnost, ač bych potřeboval vyšší, pak mu udělím důležitost tak, že za každou hodnotu atributu, která má být nejvyšší přidám !important
- vy výsledku platí, že browser přidělí každému selektoru specifičnost. Důležitost aplikovaní se bere podle vyšší specifičnosti; !important přebíjí vše.
- vítězí styly autora na styly čtenáře, pokud nejsou styly čtenáře označeny !important. Pokud jsou styly autora označeny !important i přesto výtězí styly čtenáře označené !important. Styly autora i čtenáře vítězí nad výchozím styl prohlížeč.
- no a pokud mají všechna pravidla stejnou váhu (tedy žádné není označeno !important) a mají stejnou specifičnost, pak vítězí to, co je uvedeno pozdějí --> „kaskádové“ styly. v CSS 2.1 vítězí inline styly, protože jsou považovány za vzdálenější, než styly z importovaného stylopisu.
- pak je tu také vysvětlení pravidla LVHA, kterému nerozumím --> musím si napřed nastudovat pseudotřídy a jejich řetězení. A to je docela silný kafe, takže nechávám na jindy.--Juandev 28. 7. 2010, 15:00 (UTC)
- browser stylopis analizuje tak, že každému selektoru přidělí hodnotu:
- nicméně problém se specifičností je velmi zajímavý. Jo a ještě jedna vět, každou deklaraci musím označit za důležitou, nestačí jen jednu. Vysvětluje, že při použití inline stylů opravdu vyhrává to co jde první v dokumentu, tedy více nahoře. Při použití externího stylopisu, se ale specifičnost vypočítává:
Příklady výpočtu specifičnosti
[editovat]Problém 2:
[editovat]Poznatky
[editovat]Třídy a identifikátory (classes and ids)
[editovat]Pořád se mi pletou třídy a identifikátory, tak si k tomu musím vymyslet memotechnickou pomůcku:
- třídy (class) jsou jako školní třídy a je možno je v jednom HTML dokumentu použít vícekrát, značka .
- idenfikátory (id) jsou jako personal id a je možno je v jednom HTML dokumentu použít jen jednou, značka #
Jak se nastaví uživatelské styly pro všechny prohlížeče
[editovat]Na IRC, jsem dostal tuto nápovědu. U FF je to docela jednoduché: How To Write a User Style Sheet for Firefox