Sobota, 31 červenec 2010
Hlavní nabídka
Rubriky časopisu
ICQ
vitakappa
Stálé články
Hledat

CSS FAQ Tisk Poslat
Kaskádové styly - CSS 1
Napsal Víťa   
Pátek, 30 listopad 2007

Hodnocení 1.5/5 (6 hlasů)

Nebojte se zeptat

Některé věci nejsou v normách CSS zodpovězeny dostatečně výstižně a protože mne neba stále odpovídat na to samé, máte to zde.

Q. Jak prohlížeč zpracuje Kaskádové styly v kombinaci s FONT nebo např. BGCOLOR? Co má přednost?
A. Tyto typografické příkazy jazyka HTML mají podle normy nejnižší váhu a jakákoliv definice Kaskádových stylú by je měla přepsat. Osobně se ale domnívám, že výsledek bude nepředvídatelný. Konkrétně Mozilla se takto nechová a nedoporučuji tyto dva světy kombinovat.

Kaskádové styly tu jsou právě proto, aby tyto příkazy HTML pro nastavení grafické prezentace nahradily. Pište čistý kód.

Q. Jaxe budou slučovat styly s určením média a s rozlišením základního a náhradního stylu?
A. Blbě a nepředvídatelně. Pokud budu chtít použít model kaskádového slučování definic stylú spolu s určením výstupního média (screen, print) + základní a náhradní styl, tak výsledek bude velmi závislý na prohlížeči. Konkrétně Mozilla se chová striktně podle normy CSS1 a definice stylú poskládá podle těchto pravidel → tedy použije definice s nejvyšší váhou, což ovšem múže někdy dělat neplechu při použití trvalého a náhradního stylu. M$IE se jako obvykle chová jinak.

Jediné možné řešení, které jsem nalezl, je použít základní styl (TITLE="něco"), nepoužívat trvalý styl a další definice stylú připojit jako náhradní styl, případně i s určením (rozlišením) výstupního média.

Q. Předpokládal jsem, že když určím velikost fontu ve stylu pro BODY, tak ji podědí všechny prvky na stránce. Skoro to tak je, ale s vyjímkou tabulek, které si stále drží nějakou default velikost fontu. A třeba barvu fontu tabulka podědí. Jasně, že si múžu udělat styl pro tabulku, ale je to normální? Díky za radu.
A. Za málo. - Jo, je to normální. Já dělám tabulkám jejich vlastní styly a rozlišuju je pomocí CLASS, je to tak spolehlivější. Mechanismus dědění vlastností nechodí v současných prohlížečích 100% spolehlivě a radši se mu vyhýbám. Je tedy lépe si určit dúležité vlastnosti samostatnou deklarací stylu a na dědičnost se nějak moc nespoléhat. Mrkni na moje soubory se styly, dají se celkem pohodně získat z těchto stránek.

Tabulky se chovají trochu jinak než ostatní prvky a je třeba velmi dobré, aby před každou tabulkou byl ukončený odstavec. Já používám (pro jistotu) před každou tabulkou nový prázdný odstavec <P></P>. Ostatní prvky, např. nadpisy či seznamy na toto kupodivu nejsou citlivé. Proč tomu tak je netuším, v normě HTML 4.0 se píše něco v tom smyslu, že každá tabulka je svúj vlastní samostatný objekt - možná proto.

Q. Hledám radu, jak naformátovat pomocí CSS vzhled TITLE v odkazu. Neposlouchá mne to. Copak to nejde?
A. Ne, nejde to. Atribut (vlastnost) TITLE není typografický příkaz (prvek) jazyka HTML, jako jsou např. IMG, P, H1 apod., ale je to vlastnost stránky a vzhled vlastností pomocí CSS upravovat nelze, to je plně v moci prohlížeče. Pomocí CSS lze nastavovat vzhled pouze u příkazú jazyka HTML = prostě TITLE pomocí CSS nenastavíš.
Q. Myslím, že máš chybu v CSS, neboť se mi v IE 6.0 zobrazují bullety <LI> vlevo mimo obrazovku.
A. Myslíš špatně. Píšu si definiční soubory CSS přesně podle normy a jestli to M$IE zobrazuje divně, obrať se se stížností na firmu Mrkwo$oft.

Jo, vím o co jde, je to parametr list-style-position. Tento parametr múže nabývat jedné ze dvou hodnot: inside a outside. Jenže já to používám přesně podle normy a že si Microsoft normy vykládá po svém, to opravdu neovlivním. A vlastně to není jenom toto, má to také souvislost s délkovými jednotkami. Ví se, že M$IE je interpretuje špatně.

Kontroluji si stránky ve všech hlavních prohlížečích - Mozilla, Opera, Konqueror a ve všech to chodí dobře. Jestli to MSIE zobrazuje špatně (a nejenom toto), je to chyba tohoto prohlížeče. Do určité míry si styly kontroluji i v tomto prohlížeči (pokud jej tedy mám), ale nesnažím se o 100% zobrazení → pro mne je dúležité, aby se to zobrazovalo v Mozille a jejích dcerách a když už musím, tak v případě MSIE použiji mechanismus skrytých podmínek, tedy že MSIE dostane upravený styl. Asi takto:

<!--[if IE]>
<link rel="stylesheet" type="text/css" href="msie_fix.css">
<![endif]-->
Q. Radši mi poraď, jak mám pomocí stylú vycentrovat tabulku na stránce.
A. Neporadím, protože to sám neumím. Co já jsem se s tabulkama natrápil, než mi to začlo chodit pořádně…

Ono to totiž asi ani nejde. Pokud napíšeš něco jako TABLE {align: center;}, taxe podle definic stylú vlastně vycentrovává obsah prvku TABLE a nikoli tabulka samotná. Jedno z možných, avšak né čistých řešení je celou tabulku uzavřít do prvku DIV, jenž bude mít nastaveno align: center. Paxe totiž celý obsah tohoto nadřízeného prvku DIV vycentruje.

Lze to ale i jinak. Používám pro centrování tabulky její vlastní atributy a chodí to docela spolehlivě. Tabulky mám tedy napsané nějak takto:

<P></P>
<TABLE BORDER="0" WIDTH="98%" CLASS="xxx" ALIGN="center">
<TR>
<TD>
.
.
.
.
</TABLE>
Q. Potřebuji poradit, jak změnit posuvník v Exploreru na šipčičky místo nej…
A. Neporadím, neznám. Změna posuvníku nepatří do normy CSS1, ale si to Microsofti vymysleli sami = není to v normě = není to standart. Pokud to není v normě, tak to bude fungovat pouze v M$IE. Zavádět na platformově nezávislý Internet proprietální řešení (tedy věci, co fungují pouze v jednom operačním systému a pouze v jednou prohlížeči) se nedělá (slušně řečeno).

Nedoporučuji se orientovat na proprietální řečení, pak to totiž bude fungovat jenom někomu. Smyslem jazykú HTML a CSS je pravý opak → aby to fungovalo každému.

Q. Co je to tag HTML?
A. Musím se přiznat, že zrovna toto slovo nemám rád. Tag je cosi jako vysačka na oblečení a to nemá s dokumentem HTML nic společného. Navíc je to hnusný amerikanismus.

Je to základní formátovací slovo (strukturální příkaz) jazyka HTML, např. HTML, HEAD, BODY, H1, P atd. Celý proces zpracování HTML dokumentu je takovýto (přibližně): prohlížeč si načte nějaký soubor foo.html, zkontroluje jej kontrolorem správnosti a vypustí části kterým nerozumí a pak celý dokument vysází na obrazovku. Jsou+li zde nějaké styly, zpracuje je a dokument vysází podle těchto definic. Sazba dokumentu je, jak vidno, řízena prvky jazyka HTML a tedy by bylo správnější hovořit o příkazech jazyka HTML. Já v těchto popisech Kaskádových stylú používám výraz prvek HTML, neboť z hlediska CSS se jedna každá definice stylu vztahuje právě k nějakému konkrétnímu výrazu HTML, tedy obsahu daného příkazu.

Q. Čím víc se učím HTML + CSS apod., tím víc zjišťuji, jak moc toho neznám. Čím víc se učím, tím méně vím. Já ani nevím, co všechno vlastně nevím a co se mám naučit.
A. To je úplně normální. Dokonce ani já nevím všechno. Základem je si vytvořit nějakou informační základnu, která popisuje obecné chování daného předmětu či oboru zkoumání a podle znalosti obecného posuzovat chování ve více specializovaných případech. Obecný popis Kaskádových stylú nám pak vytváří referenční model chování, který múžeme dále upřesňovat. No ale teď jsem to zašmodrchal ještě více - na jednoduchou otázku jsem dal složitou odpověď. ^_^

Tak znova: postupovat od jednoduchého a obecného ke složitějšímu a specializovanému - indukce. Číst, zkoušet, ptát se zkušenějších a i sám sebe, a hlavně pozorovat. Nejdúležitější je ovšem se vždy pochválit a mít se dobře (myslím to vážně - vždy se pochvalte).

Q. Nemá smys se učit HTML, protože do dvou let budou všechny stránky na Internetu ve Macromedia Flash.
A. Hmmm. All your base are belong to us…

* * *
 Žádné komentáře
Dosud zde není žádný komentář.
Odeslat komentář
Email (nebude zveřejněn)
Jméno
Titul
Komentář
 zbývá znaků
Captcha Image Znovu vytvořit bezpečnostní kód, pokud je nečitelný
Aktualizováno ( Neděle, 10 únor 2008 )
 
Další >


* * *
Firefox - webí prohlížeč Thunderbird - správce pošty
© 2010 časopis Zaklínač
Joomla! is Free Software released under the GNU/GPL License.