Starší komentáře ke článku: Kaskádové styly v dobrém stylu

Zpět na článek | Úvodní stránka Interval.cz

Avatar

Autor komentáře: Jméno a příjmení

Datum vložení: 29.7.2002 0:23:18

Jenze je potreba si uvedomit ze ruzne prohlizece maji (bohuzel) ruzne prave kaskadovani a dedeni vlastnosti. Casto je clovek nemile prekvapen jak ruzne dedeni probiha - a to ze se spolehate na dedeni znamena ze cast vasich ctenaru bude nemile prekvapena...

Avatar

Autor komentáře: Marek Prokop

Datum vložení: 29.7.2002 0:58:30

Vezmete-li v uvahu treti odstavec clanku, tak IMHO zadny problem nehrozi.

Avatar

Autor komentáře: Vilém Málek

Datum vložení: 29.7.2002 8:35:28

Vážený pane kolego, nejprve dovolte, abych Vám poděkoval za krásný článek, s jehož obsahem ze srdce souhlasím. Dovolil bych si však několik poznámek o praktických zkušenostech s CSS:

1. Dědičnost - někdy bývá narušována některými strukturálními prvky, až příliš často bývají kamenem úrazu tabulky
2. Kontextové selektory - nebývají správně vyhodnocovány některými prohlížeči, nebo se jejich interpretace v jednotlivých verzích stejných prohlížečů různí
3. Kontextové konstrukce - v některých případech se nelze spolehnout například na uzavření určitého obsahu do elementu DIV (velmi často při použití vlastnosti float, která sice umožňuje různá grafická kouzla, ale zároveň vážně zasahuje do vzájemných vztahů elementů na stránce)

Prosím, neberte mé poznámky jako kritiku, ale spíše jako drobné postřehy, které snad pomohou méně zkušeným uživatelům při hledání chyb a řešení problémů s jejich díly.

Avatar

Autor komentáře: Marek Prokop

Datum vložení: 29.7.2002 9:57:21

Ano, tabulky a dědičnost -- ve většině prohlížečích (ne-li ve ve všech) se např. vlastnost font-size nedědí do TD, což je v rozporu se specifikací. Všechny příručky na to upozorňují a všechny většinou uvádějí i řešení -- deklarovat font-size vždy současně pro několik prvků, např.:

body, td, th, li, ... {
font-size: 14px;
}

O problémech s kontextovými selektory nevím. Mohl byste, prosím, uvést nějaké konkrétní příklady? Děkuji.

Avatar

Autor komentáře: Vilém Málek

Datum vložení: 29.7.2002 19:53:23

Pokoušel jsem se dnes dohonit kolegyni, která na tento problém před několika týdny narazila. Nakonec jsem ji odchytil na chatě ;-) Bohužel, nevybavuje si již přesnou konstrukci, jen to, že se chybové chování projevovalo v jiných prohlížečích než MSIE6+ a Netscape6+ ;-(

Avatar

Autor komentáře: Martin Trčka

Datum vložení: 29.7.2002 21:16:24

Mozilla mi korektně dědí font-size: smaller i do tabulek. Máte ale pravdu, IE i Opera na to kašlou a mají v tabulkách původní velikost fontu. Ach jo.

Avatar

Autor komentáře: Vilém Málek

Datum vložení: 5.8.2002 8:18:52

Při tvorbě stránek používám elementy DIV a pomocí vlastnosti display (inline, block, none) určuji, co se má zobrazit na monitoru a co se například tiskne. Přitom jsem narazil na zajímavost, když jsem se pokoušel definovat stránku tak, aby byla zobrazovaána stejně v šestkových prohlížečích.

V patičce mám dva bloky, z nichž se jeden zobrazuje na monitoru a druhý tiskne. Ve standardní stránce je vše v pořádku a celý mechanismus funguje. Pokud se však v těle stránky objeví nějaká tabulka (například seznam kontaktních míst), přestane Opera správně zobrazovat některé prvky, které ve stránce po tabulce následují.

Elementy, které mají pro tisk nastaveny vlastnost "display: none" se zcela správně nezobrazí, avšak elementy, které mají nastavenu vlastnost display na inline či block se nezobrazí také! Přesněji, jedná se o ty elementy, které mají vlastnost pro zobrazení na monitoru "display: none".

Na bezchybnou implementaci CSS si asi ještě nějaký ten čas počkáme ;-)

Avatar

Autor komentáře: Třídní

Datum vložení: 29.7.2002 16:39:01

.clanek p {...}

Hmmm, skvělý, ale co když udělám tohle:

<style>
.clanek p {color:silver}
.jinystyl {color:navy}
</style>
<div class="clanek">
<P>a</P>
<P>b</P>
<p class="jinystyl">c</P>
</div>

Poslední odstavec má být podle logiky (alespoň mé) modrý. To by mě zajímalo, co je na tomto špatně, když to ANI JEDEN prohlížeč tak nezobrazí...

<style>
.clanek {color:silver}
.jinystyl {color:navy}
</style>
<div class="clanek">
<P>a</P>
<P>b</P>
<p class="jinystyl">c</P>
</div>

Tohle funguje naopak tak jak má...

Avatar

Autor komentáře: Třídní

Datum vložení: 29.7.2002 16:41:00

.clanek p {...}

Hmmm, skvělý, ale co když udělám tohle:

<style>
.clanek p {color:silver}
.jinystyl {color:navy}
</style>
<div class="clanek">
<p>a</p>
<p>b</p>
<p class="jinystyl">c</p>
</div>

Poslední odstavec má být podle logiky (alespoň mé) modrý. To by mě zajímalo, co je na tomto špatně, když to ANI JEDEN prohlížeč tak nezobrazí...

<style>
.clanek {color:silver}
.jinystyl {color:navy}
</style>
<div class="clanek">
<p>a</p>
<p>b</p>
<p class="jinystyl">c</p>
</div>

Tohle funguje naopak tak jak má...

Avatar

Autor komentáře: Marek Prokop

Datum vložení: 29.7.2002 17:15:41

Váš příklad je naprosto v pořádku a prohlížeče ho zobrazují správně. Máte-li následující stylový předpis:

.clanek p {color:silver}
.jinystyl {color:navy}

pak konkrétnost (specificity) prvního selektoru je 11, kdežto druhého jen 10. V následujícím příkladu HTML kódu tedy budou všechny odstavce stříbrnou (silver) barvou:

<div class="clanek">
<P>a</P>
<P>b</P>
<p class="jinystyl">c</P>
</div>

Popis jak přesně počítat konkrétnost selektoru naleznete ve Specifikaci CSS2, v kapitole "6.4.3 Calculating a selector’s specificity".

Avatar

Autor komentáře: Marek Prokop

Datum vložení: 29.7.2002 17:19:20

Omlouvám se za zmatený příklad, fórum zřejmě požírá značky odstavců. Správný příklad HTML kódu je v původním příspěvku tazatele.

Avatar

Autor komentáře: Webmaster

Datum vložení: 29.7.2002 16:53:01

Některá "nastínění" v reakcích na článek jsou alfou omegou. Může mi např. někdo vysvětlit, proč v MSIE6 nebyly opraveny některé odchylky od specifikace a standardu (nejen přímo odchylky - např. width, ale i naprosto chybějící věci), když už byly známé při uvolnění MSIE5?

Pak se nelze divit, že plno lidí se do CSS2 nehrne, když plno věcí z HTML by v CSS2 řešit opravdu už i šlo, ale nejde, protože tvůrci prohlížečů plno věcí ve standardu ignorují (a nebo podporují naprosto špatně).

Jeden dotaz z praxe, mohl by mi někdo prosím odpovědět: :-)

Podle různých diskuzí (i podle mě) neexistuje v CSS neboli v XHTML náhrada za (i tak nestandardní) align="100%" u tagu TABLE. Je to pravda?

Pokud ano, beru to jako velkou díru v CSS - doufám že nebude sporu o velké účelovosti a praktičnosti použití (mimochodem, jinak by to i patrně VŠECHNY prohlížeče - MSIE, NN, Opera, dokonce i Mozilla! nepodporovaly, že?). Osobně absolutně nechápu, proč nebylo HEIGHT u tagu TABLE standardizováno. Jak jinak zarovnat text nebo prvky přesně doprostřed (BEZ DOM A JAVASCRIPTU)?

Avatar

Autor komentáře: Vilém Málek

Datum vložení: 29.7.2002 17:17:59

Chápal bych width="100%" nebo align="justify" ale align="100%" je tedy pro mne záhadou ;-)

Avatar

Autor komentáře: Marek Prokop

Datum vložení: 29.7.2002 17:37:51

Máte pravdu, že podpora CSS2 ani u nejnovějších verzí prohlížečů není dokonalá. Na druhou stranu existuje již velmi široká množina prvků CSS, kterou lze bez podstatnějších problémů využít ve všech prohlížečích verze 5 a vyšší. Zároveň je velikou výhodou CSS, že lze téměř s chirurgickou přesností nastavovat stylové předpisy na míru jednotlivým prohlížečům a poměrně snadno tak kompenzovat různou míru podpory a případné nekompatibility.

Popravdě řečeno, mnohem víc mne trápí to, že některé prohlížeče dodnes nemají kompletní podporu HTML 4, protože např. chybná implementace Q nebo ABBR obejít nijak nejde.

Co myslíte tím align="100%" opravdu nevím.

Co se týče atributu height prvku TABLE: jak byste si představoval, že by to mělo fungovat? Tak špatně jako v prohlížečích, které tento atribut proprietárně podporují? Vždyť se, vzhledem k podstatě tabulky, jedná o hausnumero bez jakéhokoli rozumně představitelného významu.

V každém případě bych doporučoval přenést případnou diskusi k výše uvedeným tematům do diskusního fóra, nějaké konference, či privátní pošty. S tematem článku to nijak nesouvísí. Děkuji.

Avatar

Autor komentáře: Webmaster

Datum vložení: 29.7.2002 17:50:01

ALIGN="100%" je nesmysl, myslel jsem samozřejmě HEIGHT="100%" :-)
Toto je právě jen příklad něčeho, co nelze také (pokud vím) nijak obejít. Apropo, ve fóru (nejen na Intervalu a nejen v ČR) už tam někdo tento dotaz samozřejmě vznesl, odpovědí: 0 (a nebo 100, ale nic neřešících).

Tedy to není nikoliv o tom, jak to který prohlížeč podporuje (ostatní hodnoty teď zkoušet nebudu, ale každopádně ono 100% funguje stejně a správně u: MSIE4, MSIE5, MSIE6, NN4, NN6, NN7, Mozilla 0.7, 0.9, 1.0, Opera5, Opera6), ale o tom, jak se to hojně z jasného estetického důvodu používá a že to nelze obejít!
A opravdu netuším, co myslíte tím hausnumerem. WIDTH="100%" hausnumero pro Vás není, ale HEIGHT="100%" ano, velice zajímavé...
Představitelný význam viz výše: ZAROVNÁNÍ TEXTU DOPROSTŘED OBRAZOVKY PŘI JAKÉMKOLIV ROZLIŠENÍ, BEZ POUŽITÍ DOM A JAVASCRIPTU!

Avatar

Autor komentáře: Marek Prokop

Datum vložení: 29.7.2002 18:36:17

Moc vám nerozumím. Ve standardním HTML nelze výšku v procentech určit žádnému běžnému prvku (s pár výjimkami), v proprietárním HTML některých prohlížečů to lze u tabulky. Naproti tomu v CSS lze výšku v procentech (z obsahujícího bloku) určit libovolnému blokovému prvku. Jeví se vám to jako omezení CSS oproti HTML?

Vertikální zarovnávání je v CSS možné (opět narozdíl od HTML ve všech blokových prvcích, nejen v buňce tabulky), někdy však naráží na problémy s impletací u prohlížečů.

Co se týče onoho hausnumera -- předpokládám, že rozdíl mezi výškou a šířkou u jazyka píšícího vodorovně (na rozdíl od např. japonštiny, která je psána svisle) by mohl být dostatečně zřejmý. Mimochodem, všiml jste si, že CSS zavádí vlastnost overflow? V HTML nic takového není a tudíž jsou tam všechny explicitní rozměry bloků (ale především výšek), poněkud problematické a v praxi ne příliš použitelné. Kdyby použitelné byly, asi by nebylo potřebat udržovat celé layouty pohromadě neviditelným gifem.

Tím vším nechci říci, že CSS je dokonalé a umí všechno. Není to pravda a proto se také stále vyvíjí, připravuje se CSS3. Spekulovat však o tom, zda CSS2 má větší či menší prezentační možnosti než HTML, je absurdní.

Samozřejmě vám ponechávám právo na vlastní názor :-)

Avatar

Autor komentáře: Webmaster

Datum vložení: 29.7.2002 19:08:14

Z Vašich prvních dvou odstavců jsem vyčetl vše co už vím (bez urážky), ale nikoliv tu věc na kterou jsem se ptal: Jak zarovnat text doprostřed obrazovky při jakémkoliv rozlišení bez použití DOM a JavaScriptu :-) A z toho soudím, že je tedy neřešitelná - jakoby se stalo.
Možná jste měl na mysli, že s tím souvisí vlastnost overflow. Pominu teď docela důležitou věc, totiž že jí absolutně vůbec neumí ještě ani hojně používaná Opera6, ale to není nic nenormálního, ta toho neumí - např. dost používanou vlastnost display (alespoň že umí visibility). Vlastnost overflow ale hlavně výše uvedenou věc NEŘEŠÍ. Já chci zarovnat text na střed obrazovky v jakémkoliv rozlišení, nějaká možnost rolování s tím, nezlobte se, nesouvisí... Nebo se pletu a právě s ní lze nějakým trikem výše uvedeného dosáhnout? :-) To byste mi vytrhl trn z paty, a možná bych se XHTML 1.0 opravdu zabýval i v praxi ;-)))

Na tom, že se vyvíjí CSS3 je docela směšné právě to, o čem už jsem mluvil - totiž že do dnešního dne nebyli výrobci schopni začlenit a opravit plno věcí ještě z CSS2 - a jak to tudíž bude vypadat s případným CSS3 si lze představit - standardizace a podpora prohlížečů pouze na papíře, jinak nefunkční (a dokonce se mi zdá, že různé vlastnosti z CSS2, které jsou standardizovány už od počátku, nepodporuje už od počátku ŽÁDNÝ PROHLÍŽEČ, jako kdyby všichni výrobci opisovali a řekli si: tuhle vlastnost nepodporuje zatím nikdo, tak proč bych jí měl implementovat já, kašlu na to - protože ty vlastnosti z CSS2, které ten daný prohlížeč nepodporuje, se většinou shodují se seznamem těch, které nepodporuje jakýkoliv jiný) :-) Ale možná, že (s tím CSS3, až bude) nás výrobci prohlížečů překvapí, a v Mozille 1.5, NN 8.0, Opeře 8.0 nebo v MSIE 7.5 bude podpora CSS3 alespoň 95%, to jsem tedy zvědav :-)

Avatar

Autor komentáře: Marek Prokop

Datum vložení: 29.7.2002 19:31:17

Co se týče vertikálního centrování, přečtěte si článek Centrování v CSS na <a href='http://www.sovavsiti.cz/c02031.html' target='_blank'>http://www.sovavsiti.cz/c02031.html</a>. Nemusíte mi pak psát, že neřeší všechny případy stejně jako tabulka a že nefunguje ve všech prohlížečích jako tabulka. Vím to.

Na tom, že se vyvíjí CSS3, ani na tom, že v současných prohlížečích není plná podpora CSS2, ani na kombinaci těchto faktů nevidím vůbec nic směšného. Tomu, co píšete v dalším textu už vůbec nerozumím. Zřejmě vám uniká podstata specifikací W3C, které jsou ve skutečnosti (i zcela oficiálně) *doporučením* pro výrobce prohlížečů. Musí tedy *nejprve* vzniknout a *pak* teprve mohou být implementovány.

Na hodnocení rozsahu, kvality a využitelnosti současných implementací CSS se zřejmě neshodneme a ani to není nutné, protože se jedná o hodnocení značně subjektivní. Tuto diskusi bych si tedy dovolil, alespoň za sebe, ukončit.

Kdybyste ovšem měl něco, co se skutečně týká článku, jsem vám samozřejmě nadále k dispozici. Děkuji.

Avatar

Autor komentáře: Webmaster

Datum vložení: 29.7.2002 21:05:24

Dobře, respektuji to, jen naposled odpovím, když dovolíte:
Ten článek na Sově v síti jsem samozřejmě četl, Sovu v síti totiž odebírám emailem (a čtu občas i Weblogy) :-))) Určité řešení to je, ale problém je právě v tom nucení definovat objekt nikoliv relativním rozměrem jako tabulku ale absolutním v pixelech.

Pokud jsou všechny specifikace W3C doporučením a nikoliv standardy, které (minimálně tyto) je POVINNOST do prohlížečů implementovat, pak už opravdu nevím, co na to mám říct...

Avatar

Autor komentáře: Marek Prokop

Datum vložení: 29.7.2002 21:38:14

Přeci jen ještě musím reagovat, tentokrát na vaši úvahu o povinnosti standardů. Jak byste si, prosím vás, představoval povinnost výrobců prohlížečů implementovat jakékoli normy? Snad je přeci samozřejmé, že *veškeré* technické normy čehokoli jsou pro výrobce pouze doporučení a ne povinnost, protože nikdo nemůže nikomu přikazovat, jak má co vyrábět.

Rozdíly jsou jen v míře standardizace konkrétních oborů. Zatímco tedy výrobci televizí si dnes nemohou dovolit vyrábět TV přijímače nerespektující běžné normy, protože by je nikdo nekupoval, výrobci prohlížečů si to zatím dovolit mohou.

IMHO každý obor prochází zákonitým vývojem od živelnosti a nejednotnosti po vysokou míru standardizace. Kdysi bylo také jedno, jak jsou udělány jednotlivé telefonní sítě a jak široké jsou vlakové koleje. Dnes už to jedno není. Standardizace rozchodu kolejí trvala možná sto let, telefony už byly rychlejší a věřte, že ty webové standardy se prosadí ještě rychleji. Absence standardů je totiž pro všechny zúčastněné neúnosně drahá legrace.

Avatar

Autor komentáře: Vilém Málek

Datum vložení: 29.7.2002 19:51:25

Že by Opera6 neuměla pracovat s vlastností display? Tak to by mne setsakra zajímalo, jakým způsobem já vlastně na svých stránkách skrývám tiskové a obrazovkové bloky ;-)

Avatar

Autor komentáře: Webmaster

Datum vložení: 29.7.2002 20:52:05

Tak to mě taky :-) Jakou že adresu mají Vaše stránky, PROSÍM? Že bych byl už tak blbej, že neumím (správně) používat vlastnost display??? Ale je to klidně možný, proč ne. Ovšem pak plno stránek (a právě na plno stránkách jsem to už taky hledal, jak u Opery na to) lže, viz třeba:

<a href='http://www.xs4all.nl/~ppk/js/blockinvi.html' target='_blank'>http://www.xs4all.nl/~ppk/js/blockinvi.html</a>

Avatar

Autor komentáře: Marek Prokop

Datum vložení: 29.7.2002 21:16:55

Vlastnost display může nabývat v CSS2 sedmnácti různých hodnot. Většinu z nich většina prohlížečů AFAIK neumí a nikomu to až tak moc neschází, protože pro (X)HTML nemají zrovna klíčový význam (mají ho spíš pro jiné aplikace XML). Základní hodnoty z CSS1, tj. none, block, inline a list-item však umějí, pokud vím, všechny pětkové prohlížeče bez problémů.

V textu, na který odkazujete také není nic o tom, že by Opera vlastnost display (konkrétně display:none a display:block) neuměla. Příětě čtěte pečlivěji, jinak zíkáte o CSS zkreslené představy ;-)

Avatar

Autor komentáře: Webmaster

Datum vložení: 29.7.2002 21:23:58

Ale ale, a co kdybyste četl pečlivěji Vy? ;-)))
Ta stránka není jen na čtení, tam lze tyto vlastnosti i vyzkoušet pomocí DOM a JavaScriptu :-) A právě to ani Opera6 neumí (jinak style="display:none" a style="display:block") samozřejmě ano. Trvám na tom, že display sice umí, ale není nijak ovladatelné, protože něco jako document.getElementById(neco).style.display je u Opery vždy undefined.

Avatar

Autor komentáře: Marek Prokop

Datum vložení: 29.7.2002 21:43:47

Je to přesně tak, jak píšete: Opera tradičně zaostává v podpoře DOM a klientského skriptování. S její podporou CSS to však nijak nesouvisí.

Avatar

Autor komentáře: Webmaster

Datum vložení: 29.7.2002 21:58:57

Tak nevím, ale my se asi neshodneme nikdy :-) DOM a CSS spolu NIJAK nesouvisí?

Ne ne, tohle nemá cenu, vzdávám se...

Avatar

Autor komentáře: Marek Prokop

Datum vložení: 29.7.2002 22:13:14

Splnění specifikace CSS2 není nijak podmíněno splněním specifikace DOM. Čili DOM a CSS spolu sice možná souvisejí (jako ostatně všechno se vším), ale z míry podpory DOM nelze vyvozovat míru podpory CSS.

Tentokrát nejde ani tak o to, jak se my dva shodneme, ale o to, jak specifikace CSS definuje "compliant user agent".

Avatar

Autor komentáře: Martin Trčka

Datum vložení: 29.7.2002 22:16:43

Není tak úplně pravda, že Opera neumí vlastnost display. Teď jsem jí zkoušel nastavit hodnoty block, inline a none (IMHO nejčastější) a Opera všechny tři zvládla. Co Váš příklad dokazuje, je jen to, že Opera neumí *změnit* vlastnost display. Což může být problém implementace JavaScriptu. A někteří lidé si vystačí i bez JavaScriptu, takže těm může připadat, že Opera vlastnost display zvládá.

Avatar

Autor komentáře: Martin Trčka

Datum vložení: 29.7.2002 22:30:42

Omlouvám se, pan Marek Prokop už tenhle argument (podpora DOM není podpora CSS) použil dříve, já jsem příslušné příspěvky omylem přeskočil. Chtěl bych ještě poděkovat panu Prokopovi, že neúnavně odpovídá Webmasterovi. Hodně lidí se mě ptá (popř. argumentuje) podobně jako Webmaster a já často nenacházím tu správnou odpověď (protiargument), přestože intuitivně tuším, co je správně. Pan Prokop mi (kromě jiného) pomáhá hledat právě tyto odpovědi . Ještě jednou, děkuji.

Avatar

Autor komentáře: Webmaster

Datum vložení: 29.7.2002 23:04:43

Já také panu Prokopovi i jiným děkuji :-)))

P.S. ... právě bez podpory DOM je u mě vlastnost nepoužitelná, protože nejčastější důvod použití je zřejmý: střídavé ukázování a skrývání objektů (samozřejmě nejen menu - tam lze použít jiné techniky - ale i jiných). A se VŠEMI CSS vlastnostmi má být umožněno operovat - jinak se nejedná o DHTML, ale o čistě statický jazyk - něco jako holé XHTML bez CSS.

Avatar

Autor komentáře: Vilém Málek

Datum vložení: 30.7.2002 0:14:47

Milý příteli, Vy nás ale cvičíte. Matete jedno s druhým lépe než Däniken. Ano, obdivuji Marka Prokopa, že je schopen a ochoten Vám neustále odpovídat a narovnávat Vaše pokřivená zrcadla ;-)

Ještě jednou, milý přítely, pro mne jste exemplární ukázkou ignoranta, idiota a nebezpečně nakažlivého pitomce ;-)

Avatar

Autor komentáře: Jméno a příjmení

Datum vložení: 30.7.2002 15:51:40

:-)))))

Avatar

Autor komentáře: Webmaster

Datum vložení: 30.7.2002 20:34:49

:-) Takhle se přesně chovají lidé, kteří sice někoho rádi přesvědčují, ale když se jim to nepovede, znají jenom urážky "o ignoranství" a debilitě. No, už jsem si Vás taky zařadil, nebojte se... :-)
Polovina užitečnosti CSS je podle mě právě v DOM a Vy se mě stále snažíte přesvědčit o tom, že to vůbec s ničím nesouvisí. Markovi Prokopovi děkuji, ovšem nechápu, co přelítlo přes nos Vám, neboť sice většina to co pan Prokop říká, zní V TEORII velice zajímavě a občas i logicky (na odpovědi dotazu - podle toho příkladu "Třídního" ovšem nic logického nevidím - když totiž v jakémkoliv programovacím jazyce dám vlastnosti objektu a jednomu podobjektu chci dát výjimečně jinou, udělám to přesně tak jak je v příkladu - logika pana Prokopa nebo W3C je pro mě např. v tomto taktéž nepochopitelná), ale V PRAXI je to přesně to, co tvůrcům stránek jenom ztěžuje život nad bádáním "jak to asi má být"... To v HTML4 neexistovalo, tam jsou problémy tak na pár minut přemýšlení.
Ještě jednou: Teoreticky spolu CSS a DOM opravdu nesouvisí, to ví každý, ale PRAKTICKY to spolu souvisí VELICE ÚZCE! Howgh

Na Květnici jsem nebyl (i když to tam dobře znám - a nic moc), ale třeba se příště dostavím a můžete si svou slovní "brutalitu" vyzkoušet v praxi :-))) Ba ne, legrace, díky, ale přijít k úrazu nehodlám :-) Apropo nikoho jsem nenakazil a ani nakazit nehodlám, u každému nechávám jeho rozhodnutí na něm - když mě někdo (nebo já sám) přesvědčí o "chybě", rád to uznám (každý se snaží o co nejlepší výsledný produkt, ne?), ale jinak si dělám a budu dělat stránky jak uznám za vhodné a za účelné (zpětná reakce zákazníků je drtivě a většinově pozitivní - a pokud není, nic není nad poučení), a nenechám se naopak nakazit já od Vás :-) To jsme ale všichni imunní :-) A to je dobře, je svoboda slova a činu (když člověk nezasahuje do práv někoho jiného).

A že jste mě ještě nepřesvědčili (i když jsem se dozvěděl plno nových a zajímavých věcí a náhledů!)? Co takhle hledat chybu u sebe, nejen v mém jak říkáte ignoranství?

Avatar

Autor komentáře: Vilém Málek

Datum vložení: 30.7.2002 22:20:51

Ad CSS, DOM a logika W3C
- ve všech diskuzích prokazujete neobvyklou rigiditu myšlení. Co takhle přejít od postoje "Podle mne to má fungovat takhle!" k postoji "Podle W3C to funguje takhle, jak toho využít?" Když mluvíte o programovacích jazycích (a co jiného nakonec CSS a XHTML je), to v nich také ignorujete všechna pravidla?

Ad Květnice a praktická brutalita
- na Květnici jsem nikdy nebyl a nevím, jak se mnou tato vzácná biolokalita souvisí. Brutalita v praxi se asi konat nebude, nerad bych inzultoval nevinného. Leda byste se alespoň pod jeden svůj příspěvek podepsal.

Ad ignorantství
- zkuste si vzít k srdci svou vlastní radu. Já osobně jsem se cizím názorům přizpůsobil už mnohokrát a jistě to mnohokrát udělám i v budoucnosti. Zvlášť když se mi osvědčily v praxi ;-)

Avatar

Autor komentáře: Jméno a příjmení

Datum vložení: 30.7.2002 22:47:51

Add1: A proč bych to měl dělat, když 1) by mi to jen tvorbu stránek ztížilo včetně prodloužení časového rámce a 2) existuje standard HTML 4.01 :-)
A nemyslíte, že kdybych v programovacím jazyce ignoroval JEDINÉ důležité pravidlo, program by nejen že nefungoval, on by ani nešel přeložit kompilátorem, víme? :-) Ten by totiž klidně stále dokola vypisoval hlášení o chybách a dál by mě prostě nepustil, dokud bych je nenašel a neopravil.
A vidíte, nevědomky jsem narazil na souvislost nebo přímo shodu s HTML - kdybych ignoroval pravidla, asi by mi 99% (že to opakuju postý je jedno, rád Vám to zopakuju po stoprvní) mého kódu neprošlo 100% validátorem, nemyslíte? Samozřejmě mám na mysli HTML 4.01, ovšem jak jsem už taky zjistil, s převodem do XHTML 1.0 Transitional by byly jen malé problémy (zatím je to ale bezúčelné). Takže naprosto nechápu, o čem to tu pořád píšete, že ignoruju pravidla, JÁ JE DODRŽUJU Z 99%, jen občas nějaké to v praxi sporně užitečné kritizuju a nepoužívám (a většinou ho jen obejdu dalším pravidlem, které je standardizováno a přitom je pro mě přijatelné). A kdybyste si všiml, tak tu už několik dní u různých článků rozebíráme stále dokole jen pár pravidel, se kterými se nehodlám smířit, jinak těch opačných, se kterými nemám nejmenší problém, jsou další stovky a stovky...

Add3. No a mně se v praxi Vaše některé náhledy neosvědčily a neosvědčují, no... Některé ano, proboha, hlavně ty v seriálu o přístupnosti a většinu už automaticky při tvorbě dodržuju!!!

Já opravdu nevím, co pořád máte, že nedodržuju standardy, když moje stránky jsou v pořádku a skoro plně se standardem HTML 4.01 - radši se zaměřte na těch 99% webu, který je udělán prasácky tak, že nedodržuje skoro nic - jen prohlížeče jsou k nim milosrdné. Já dělám stránky včetně věcí okolo (JavaScript, PHP atd.) už několik let, rád získávám nové znalosti a postupy, ale co nemám rád je poučování, "musíš to dělat takhle a takhle, jinak jsi u mě prostě vůl"... Já Vám svoje názory v žádném případě nenutím, já Vám je jen sděluji!

Avatar

Autor komentáře: Webmaster

Datum vložení: 30.7.2002 22:48:47

To jsem byl samozřejmě já :-)

Avatar

Autor komentáře: Marek Prokop

Datum vložení: 30.7.2002 22:29:17

Tedy Webmastře, s vámi je to opravdu těžké. Já samozřejmě respektuji vaše právo na vlastní názory, jenže pokud chcete *diskutovat* a ne jen tak planě pokřikovat, musíte pro změnu vy respektovat, že diskuse má určitá pravidla. Mimo jiné tedy musíte přesně artikulovat svá tvrzení a přesně vnímat tvrzení ostatních.

Jestliže se tedy bavíme o podpoře CSS a vy prohlásíte, že Opera nepodporuje CSS vlastnost display, ostatní se domnívají, že hovoříte o podpoře CSS vlastnosti display v Opeře. Kdybyste již na začátku napsal, že Opera neumí přistoupit k vlastnosti display přes DOM, asi by žádná nejasnost nevznikla.

Obdobně teď v odpovědi panu Málkovi píšete cosi o Květnici, kde ovšem pan Málek také nebyl a pravděpodobně spolu s drtivou většinou ostatních čtenářů vůbec nechápe, o čem je řeč.

Teď však k vašim věcným argumentům:

1) Vlastnost display

Máte samozřejmě pravdu, že CSS vlastnost display je velmi užitečná v kombinaci s DOM a klientským skriptování, to nepopírám. Na druhou stranu to ani zdaleka není její jediné využití a pokud se domníváte, že bez podpory v DOM je skoro k ničemu, pravděpodobně jste dosud nedocenil některé velmi zajímavé možnosti CSS.

Kromě dynamiky ve smysl DHTML totiž kaskádové styly nabízejí ještě dynamiku v podobě uživatelských stylových předpisů, alternativních stylových předpisů, stylových předpisů pro konkrétní média a konečně též manipulace se stylovými předpisy na straně serveru. To vše je nesmírně významné a nabízí to možnosti daleko přesahující rámec tradičního HTML. To vše je zároveň silně spjato s vlastností display a to vše funguje (nejen v Opeře) i bez DOM a klientského skriptování.


2) Konkrétnost (specificity) selektorů

Diskuse k tomuto tématu je otevřena v jiném vláknu, takže jen stručně. Zkuste si, prosím, pravidla konkrétnosti selektorů prostudovat ve Specifikaci CSS2. Nepochybně zjistíte, že jsou velmi jednoduchá, snadno pochopitelná, naprosto logická a že by bez nich celá koncepce kaskádování/přepisování pravidel vůbec nemohla fungovat.

Mimochodem, nehledejte falešné paralely mezi HTML/CSS a programovacími jazyky. HTML i CSS jsou jazyky značkovací, popisné a s programováním, ať už procedurálním nebo objektovým, mají společného jen velmi málo.

Avatar

Autor komentáře: Webmaster

Datum vložení: 30.7.2002 22:56:48

Tak já myslím, že tímto je téma: CSS, DOM a vlastnost display uzavřena, ne? :-)

Ta Květnice byla samozřejmě jen recese, nic víc...

A pokud jde o konkrétnost selektorů: Jestli paralela mezi objektovým programováním, a DOM v provázanosti na CSS a JavaScriptem, je jen falešná, pak se tomu divím, myslel jsem, že princip, logika a systematičnost objektového programování je vize, která by měla být totožná.

Avatar

Autor komentáře: Marek Prokop

Datum vložení: 30.7.2002 23:34:46

Vidíte, a zase ;-)

Paralela mezi objektovým programovaním a DOM/JS samozřejmě není falešná. Potíž je jen v tom, že odpovídáte na něco, co jsem nenapsal. Navíc se nějak nemohu vyznat v té interpunkci a skloňování, takže vůbec nevím, co vlastně chcete říci.

Čistě pro případ, že jste před tím nerozuměl vy mně, dovolím si to zopakovat jinými slovy: HTML a CSS nejsou programovací jazyky a uvažovat o nich jako o programovacích jazycích tedy nemá smysl.

V okmžiku, kdy CSS budete správně vnímat jako jazyk deklarativní, pochopíte, že priorita konfliktních deklarací musí být řízena nějakými pravidly a když si navíc ta pravidla prostudujete, zjistíte, že jsou velmi logická, jednoduchá a praktická.

Tím už bychom mohli uzavřít i téma konkrétnosti selektorů, co říkáte?

Avatar

Autor komentáře: Webmaster

Datum vložení: 31.7.2002 7:15:34

Já taky HTML a CSS neberu jako programovací jazyky, to by byl nesmysl. Já jako programovací jazyk - objektový - beru JavaScript a DOM.

Konfliktní deklarace a jejich priority: Ano, tím (že to s "normálním" objektovým programováním a jeho logikou nemá co dělat - a má to logiku jinou, protože ta z objektového programování by byla možná nepoužitelná) je to uzavřeno :-)

Avatar

Autor komentáře: jakub

Datum vložení: 1.8.2002 16:48:39

Pane Málek, pro mne jste ukázkou tolerantního a trpělivého člověka, jehož pochopení pro ostatní je příkladné. Vytváří to dobré image nejen Vám, ale i Intervalu. Váš příspěvek je zhruba stejně hodnotný jako tento můj ...

Avatar

Autor komentáře: Petr Hota

Datum vložení: 29.7.2002 19:31:24

No je skoda toho, ze i kdyz prijde neco noveho (at uz CSS3 nebo HTML4 nebo neco jineho) vzdycky tady budou nejake starsi browsery, ktere tyto funkce nevyuziji. Je skoda toho, ze firmy, ktere delaji prohlizece kaslou na standarty, jes skoda toho, ze ty standarty nejsou nekdy takove, jake by clovek potrebova pro vytvoreni stranek a pak to musi ruzne flikovat a obchazet. A pritom by stacil maly konfiguracni soubor pro kazdy browser, ktery by mu rekl co a jak zobrazit. Tento soubor by vydaval W3C a updatoval by tak novinky. Vyrobci by sice mohli pridavat ruzne funkce, ale nemohli by zasahovat do funkcnosti.
No ale nohy na zem do marastu firemnich boju o web :((((

Avatar

Autor komentáře: Martin Snížek

Datum vložení: 30.7.2002 20:06:46

Zajimavy clanek, vzaty trochu jinak nez byva o CSS zvykem. Kdyz jsem s CSS zacinal tak jsem delal vetsinu z chyb o kterych se zde autor zminuje. Casem ale clovek pride na to, ze do (X)HTML opravdu patri jen logicka struktura - at jiz je vytvarena pomoci (X)HTML znacek nebo jejich atributu class a id - v tomto pripade bych to bral jako jakousi individualni strukturu kazdeho webu, stranky...

Avatar

Autor komentáře: Hekerle Vitezslav

Datum vložení: 1.8.2002 0:30:02

<a href='http://vlocka.savvy.cz/index3.php' target='_blank'>http://vlocka.savvy.cz/index3.php</a>

Tak a ted mi reknete co si o tomhle mam myslet :\ Mozilla to zobrazuje tak jak to chci. Opera nak ignoruje padding (souvislost s absolute elementem?). IE se (prozmenu) chova nak macessky k list-style-position: inside.

Je to pure css (pouze jeden warning na font family, ta s tim ale nesouvisi), pure html (muzete zkusit validator). Jenze to vypada ve vsem jinak. Takze to musim ted trapne nahradit tim ze tam placnu misto polozky seznamu kazdemu li background-image, coz ale znacne odporuje logice veci :(

Avatar

Autor komentáře: Marek Prokop

Datum vložení: 1.8.2002 1:16:21

Nevím přesně, čeho chcete dosáhnout, ale zřejmě se jedná o vícenásobně vnořované seznamy. V HTML kódu však vnořované nejsou. Dále píšete o problémech s list-style-position: inside v IE a s paddingem v Opeře, ale list-style-position: inside se v příkladu nemůže nijak projevit (všechny položky seznamů jsou jednořádkové) a padding nastavujete jen na jediném místě na nulu.

Kód je sice asi validní, ale není příliš logický a místy je, obávám se, věcně nesprávný. Např. deklarace

ul, li {
padding: 0px;
margin: 0px;
width: 150px;
}

nemůže vést k ničemu dobrému.

Doporučuji vám CSS ještě chvíli studovat, hodně experimentovat a případně se obrátit o radu na nějakou konferenci (např. Intervalu.cz).

Avatar

Autor komentáře: Hekerle Vitezslav

Datum vložení: 1.8.2002 11:22:55

ul, li { padding: 0px; margin: 0px; width: 150px }

Aha, v cem je to spatne? To je totiz jedina cesta jak odsahnout stejneho vzhledu v IE a mozille, vite? To bude totiz tim ze jsem to experimentovani delal a proto to vim. Definice sirky ul a li je divoka, to uznavam, jenze pokud chcete udrzet jednotnou sirku, tak se tomu nevyhnete.

Mate pravdu, z logiky veci by seznamy mely byt vnorene, jenze... kdyz je vnorim tak budu mit vse obalene nadseznamem - a tim se to pekne zmrsi. Hodim na tu stranku screenshoty jak to vypada v ruznych prohlizecich pokud je nemate.

Vite, smutne na tom je ze se toho da dosahnout za dvacet minut tabulkou. Pomoci css dosahnu max. toho aby to vypadalo pokazde jinak...

Avatar

Autor komentáře: Hekerle Vitezslav

Datum vložení: 1.8.2002 11:24:14

<a href='http://www.fczbkk.sk/css/odrazky.html' target='_blank'>http://www.fczbkk.sk/css/odrazky.html</a>

Avatar

Autor komentáře: Hekerle Vitezslav

Datum vložení: 1.8.2002 12:04:29

Ten paskvil mimochodem vznikl ve snaze dosahnout stejneho vzhledu. Muzu s vami souhlasit v jistych vecech, to nicmene nevysvetluje proc kazdy prohlizec zobrazi dane CSS jinak. Pak se u me muze css omezit na definici fontu, pozadi a barvy :(. Jinak mohu se otazat ktere zobrazeni je podle vas spravne? Mozillou, IE nebo operou?

Avatar

Autor komentáře: Marek Prokop

Datum vložení: 1.8.2002 18:20:23

Podle ukázky, kterou posíláte v dalším příspěvku, soudím, že už jste na to přišel. U IE a Mozilly jde v tomto případě o různý implicitní stylesheet, nikoli o různý způsob vykreslování. Dále je samozřejmě špatně nastavovat stejnou šířku pro UL i LI, protože LI se pak do UL pochopitelně nemůže vejít.

Ještě k té tabulce. Možná byste to s ní zvládl i rychleji než za dvacet minut, ale s CSS to jde zvládnout za méně než pět minut. To však není tak důležité, větší úspory jsou později, při další správě. Kdykoli totiž, opět za pět minut, vzhled celého menu na celém webu naráz změníte. To by s tabulkou už asi tak snadno nešlo (bez SSI).

Avatar

Autor komentáře: Hekerle Vitezslav

Datum vložení: 1.8.2002 20:03:40

Jo, to mate pravdu - desne rad bych to udelal v xml, jenze to zas narazi na fakt z IE nezvlada table-cell a table-row :(. No nic, du si s tim hrat, treba na to prijdu... casem.

Avatar

Autor komentáře: iconoclasta

Datum vložení: 1.8.2002 4:01:35

V týchto dňoch prekladám Špecifikáciu CSS2 do slovenčiny. Neviem, či to dokončím. Moja dôvera v tento dokument sa čím ďalej tým viac podlamuje.

K rozhodnutiu preložiť Špecifikáciu ma podnietil trapas, ktorý som zažila s Davidom Baronom. Vtedy som ešte nevedela, kto tento chasník je.

Jeff Zeldman v predslove ‘Eric Meyer on CSS’ hovorí, že “na tejto planéte existuje možno tucet ľudí, ktorí ovládajú CSS tak dokonale ako Eric Meyer.” Som presvedčená, že má na mysli aj Davida Barona. David Baron je členom najvyššie komitétu zodpovedného za CSS2 a autorom azda stoviek testov súladu prezerača (browser) so Špecifikáciou.

Prvý test, na ktorý mi padol zrak, sa ma snažil presvedčiť, že “Tento odsek by mal mať stredne širokú neprerušovanú zelenú ohradu [This paragraph should have a medium solid green border]”. V mojom prezerači (iExplorer 6.0) ohrada bola červená. Urobila som ‘view source’ a všimla som si, že v definícii príslušnej triedy vlastnosť ‘border’ má hodnotu ‘red’. Upozornila som Davida Barona na ‘chybu’. Promptne mi odpovedal a vysvetlil, ako to má fungovať. Trik bol v tom, že jedna vlastnosť (border) prevážila [override] nad druhou (border) a podľa tretej vlastnosti (color) sa vypočítala konečná farba, tzv. ‘computed value’. Nemám nič proti takémuto mechanizmu. Nemôžem však akceptovať, aby hodnota vlastnosti textu (color) slúžila na vypočítanie hodnoty vlastnosti ohrady (border). Ide o dve rozdielne vlastnosti.

Podobných zverstiev, ktoré sa mi zdajú neintuitívne, umelo vykonštruované a nelogické, nachádzam viac.

Avatar

Autor komentáře: Marek Prokop

Datum vložení: 1.8.2002 11:14:03

Všechny vlastnosti musí mít nějakou výchozí (default) hodnotu. V případě vlastnosti border-color to je tou výchozí hodnotou hodnota vlastnosti color. Připdalo by vám logičtější, kdyby to byla např. hodnota vlastnosti font-size? ;-)

Avatar

Autor komentáře: Trin

Datum vložení: 5.8.2002 10:42:29

Trochu mimo temy , ale predsa mi neda : Snad nechcete prelozit border do slovenciny ako ohrada ??

Avatar

Autor komentáře: Petr Mikan

Datum vložení: 1.8.2002 13:27:38

Všem nám tím velmi pomůžete. Ono číst to v "druhém" rodném jazyce je vždy lepší než v angličtině (alespoň podle mě :-)

Avatar

Autor komentáře: bara

Datum vložení: 2.8.2002 8:28:32

Potřebovala bych pomoci CSS roztahnout DIV tak aby byl pres cele okno. height:100% mi DIV roztahne na zobrazitelnou velikost, ale pokud clanek pokracuje dal (musim posunout napr. scrollbarem), tak mi tam DIV najednou skonci a dal uz nepokracuje. Jde to vubec nejak? Diky

Avatar

Autor komentáře: Marek Prokop

Datum vložení: 2.8.2002 21:39:02

Váš problém by šel teoreticky řešit vlastností min-height. Prakticky je to však horší, neboť nejrozšířenější prohlížeče (IE/Win) tuto vlastnost nepodporují. Zbývá tedy DOM+JS -- mimochodem, existuje hotový skript, který stačí přilinkovat k HTML dokumentu a vlastnost min-height nasimuleje i v prohlížečích, které ji neumí. Odkaz naleznete někde ve weblogu Sovy v síti.

Na druhou stranu si myslím, že ve většině případech není nastavování prvků na 100 % výšky okna nejlepší nápad. Obvykle to svědčí o nevhodném přizpůsobení designu povaze média.

Avatar

Autor komentáře: svabcuk

Datum vložení: 2.4.2008 8:33:32

zdravim. mal by som jednu prosbicku ohladom css. Chcel si vytvorit okolo hlavneho menu okruhly ramcek dookolainak povedane v css je to "rounded". neviem ako s tym zacat. Dik za radu...

Avatar

Autor komentáře: nowaja

Datum vložení: 30.6.2008 15:20:46

dá se nějak nastavit aby nějaký prvek byl formátován, jen když je zároveň ve dvou určitých třídách? příklad: <a class="odkaz odkaz1">naformatovany text</a> <a class="odkaz">nenaformatovany text</a> <a class="odkaz1">nenaformatovany text</a>

Avatar

Autor komentáře: Anonymní myš

Datum vložení: 22.2.2009 16:13:51

Ne.

Zpět na článek | Úvodní stránka Interval.cz