O kódování nového Mindprintu

Prázdninovým tempem 200 řádků CSS kódu za den pomalu vytvářím k obrazu svému nový Kahi's Mindprint. Pomalu, ač nejde o nic složitého… Klasická funkční šablona, jakou by obdržel kterýkoli platící zákazník, by byla na světě během jedné pracovní směny, ale teď ne, teď se jedná o něco trochu jiného…

S menším zavazadlem se cestuje lépe

Trochu jsem přemýšlel a rozhodl jsem se na to jít trochu jinak. Zaprvé – žádná starost s Internet Explorerem. Jeho užívatelé, tito vybraní návštěvníci, tito vzácní hosté uvidí to, co vidí teď, tedy ne čistou stránku bez stylů, ale něco se tomu hodně blížící. Ještě nemám zcela ostrou představu, ale dal jsem si pro IE-styl limit 6 řádků CSS kódu a to včetně pěkně zformátované chybové hlášky o zastaralém prohlížeči.

Tím, že odpadla starost o zobrazení v IE6 se zároveň uvolnily zcela nevídané možnosti. Možná to není patrné na první pohled, možná je potřeba prvně odhodit zaběhlé zvyklosti, ale když odříznete IE6, zůstanou vám Gecka, Opery a Safari, jo a… teď jsem si vzpomněl na IE7. Bohužel ho tady momentálně nemám k dispozici, a ani ho z hlavy neznám, takže uvidím, jak si s tím kódem poradí. Jestliže se zakucká, já ho po zádech plácat nebudu… Neboli celé spektrum prohlížečů, které jsem označil za relevantní, mi umožňuje používání kompletního CSS2 a možná něco z CSS3, což ale, jestli si dobře vzpomínám, jsou opomenutelné třešničky na dortu.

Opravdu, zkuste si to někdy. Zapomeňte na chvíli na IE6, rozpomeňte se na odložené CSS2.1 selektory a zkuste napsat maximálně čistý, bezstarostně elegantní kód. Není to všelék, ale příjemný hojivý balzám zajisté ano. A připomínám, že nové možnosti v CSS není to jediné, oč tu běží: samozřejmě se zbavíte i starostí a obav z drtivé většiny potenciálních vykreslovacích bugů, jakoby někdo mávl kouzelným proutkem

Náš dobrman miluje lidi, skutečně!

Mezi těmi všemi postupy a metodami, které jsem se rozhodl na této práci vyzkoušet, se nalézá CSS reset napsaný Andy Clarkem. Když jsem ten kód z webu kopíroval do svého CSS souboru, nijak pečlivě jsem ho nečetl, nezamýšlel jsem se, říkal jsem si, že zajisté ví, co dělá. Tehdy jsem ještě nevěděl, že tohle se prostě nedělá. Nedělejte to.

Nezapojujte do své práce cizí kódy důvěřivě a bezmyšlenkovitě… Můžete si práci přidělat, i když účel, za jakým vy přijímáte a cizinec poskytuje kód, je přesně opačný. Mimochodem takto Andy resetuje CSS: (Kromě CSS reset se používají termíny browser normalizing nebo CSS undoing)

/* Normalizes margin, padding */
body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, fieldset, input, p, blockquote, th, td
{ margin : 0; padding : 0; }

/* Normalizes font-size for headers */
h1,h2,h3,h4,h5,h6 { font-size : 100%; }

/* Removes list-style from lists */
ol,ul { list-style : none; }

/* Normalizes font-style and font-weight to normal */
address, caption, cite, code, dfn, em, strong, th, var
{ font-style : normal; font-weight : normal; }

/* Removes list-style from lists */
table { border-collapse : collapse; border-spacing : 0; }

/* Removes border from fieldset and img */
fieldset,img { border : 0; }

/* Left-aligns text in caption and th */
caption,th { text-align : left; }

/* Removes quotation marks from q */
q:before, q:after { content :''; }

Já osobně neznám důvod, proč nepoužívat hvězdičkový selektor při nulování okrajů, s jedinou výjimkou, a to když chci vynechat formulářové prvky. Jak nejspíš víte, právě u formulářových prvků si odstraněním puddinku naděláte trochu té práce s vracením všeho do starých kolejí. Hlavně proto jsem se sháněl po odborníkem otestovaným výčtu značek, které jsou normalizovány jeden po druhém. Bohužel jsem si při své zbrklosti nevšiml, že Andy tam má mezi nimi i input.

Dále se podívejte na řádek se strongem:

address, caption, cite, code, dfn, em, strong, th, var { font-style : normal; font-weight : normal; }

Prvně pomiňme možnost takového náhledu na věc, že výchozí chování těchto prvků není nijak zvlášť vynulováníhodné, a v případě jejich neutralizace si přiděláváme nutnost jejich nové chování znovu nadefinovat. Neboli ignorujme fakt, že pro většinu z nás jde o zbytečný příkaz.

Zaměřme pozornost na dvojici… em, strong {font-style:normal; font-weight:normal;}. Zdá se vám to v pořádku? Chvíli přemýšlejte… Zdá se vám, že prostě odebereme strongu jeho přirozenou tučnost, a emu navrátíme standardní sklon? Tak to nám, amatérům, připadá na první pohled a bez dostatečného přemýšlení.

Nyní je docela pravděpodobně dalším krokem zresetování resetu, tedy navrácení přirozeného chování těchto dvou prvků. Opět, ignorujme, že naše počínání teď působí trochu směsně. Vraťme strongu jeho tloušťku a emu jeho skoliózu!

strong {font-weight:bold;}
em {font-style:italic;}

Tak. A je to. Právě jsme si zadělali na další problémy. Pokud jste si tak jako já mylně mysleli, že to projde, tak nikoli. Postačí na důkaz o opaku jednoduchá konstrukce, kombinace.

<p>Tady máš tu knihu, řekl Miller, položil ji na stůl, a zase
odešel. <strong><em>Stařec a moře</em></strong>,
stálo na obálce majestátním...

Jak byste záhy zjistili, výsledný trojnásobně zvýrazněný text nebude vyveden tučnou kurzívou, jak bylo zamýšleno, bude pouze kurzívou. Protože při resetování nejenže byl emu na navrácen standardní řez, ona mu byla přidělena i standardní tloušťka. Problém můžete jednoduše napravit přidělením zděděných (inherit) vlastností, ale to už je pouze detail, který nikdy neopustí abstraktní sféry vaší mysli, protože s vědomím, že tento způsob „resetování“ není ideální buď definice v resetu opravíte, anebo rovnou inkriminovaný řádek smažete. Myslím, že místa, kde není žádoucí aby zvýraznění bylo vyjádřeno i vizuálně, je možné v kódu explicitně vyjmenovat a vyhnout se tak obdobným kolizím v celém dokumentu.

A ty ostatní zvířata?

Je toho víc, ale dnes není možné mluvit o všem, možná zítra. Je víc věcí, co jsem zkusil, zjistil, vykoumal. Například že oddělení prezenční vrstvy od obsahové je nutně do jisté míry utopické klišé – a pokud maximalizujete takzvanou sémantiku HTML kódu až na úroveň jmen tříd, tak se v několika případech pěkně zapotíte a půjdete si vynadat… ale to by asi bylo na delší plkání.

Také jsem zjistil, kde se po několikadenním intenzivním používáním PC bere v mém levém zápěstním kloubu ta bolest. To píchání v konci předloktí, v tom místě, kde měli všichni ukřižovaní (kromě jednoho) zaražené obrovské rezavé hřeby, ta bolest je tam kvůli jedné činnosti, které by se správný muž měl maximálně vyhýbat. Ano, mluvím zde o mačkání složitých klávesových zkratek, obzvláště pak CTRL+Z. Správný muž vše napíše, či udělá správně hned napoprvé a žádné CTRL+Z nepotře­buje, to si pamatujte. Holt, takovýto úraz se vám na anglické klávesnici zaručeně nestane…


Komentáře (16)

k formuláři

RSS kanál komentářů

    • Komentář číslo: 1
    • *
    • Jméno: dgx
    • Odesláno:
      13.8. 2007 — 3:52

    Tvůj blog čtu zásadně v IE6 a musím říct, že v tuto chvíli jde o jeden z nejkrásněji nastylovaných blogů. Takže dodrž své výhružky a na styl pro IE6 už nešahej :-)

    • Komentář číslo: 2
    • *
    • Jméno: Kahi
    • Odesláno:
      13.8. 2007 — 4:58

    [1] dgx: → Dgxy, musím se svěřit, že teď vážně nevím, jestli mám vůbec v kódování pokračovat. Nerad bych image tohoto webu elektronického magazínu nějak poškodil neuvážlivým použitím příliš kalorického king-size CSS…

    • Komentář číslo: 3
    • *
    • Jméno: zirafka
    • Odesláno:
      13.8. 2007 — 14:37

    Hele Kahi, z Davida si nic nedělej. Mě to taky říkal, když jsem se rozhodla na začátku svýho blogu ostylovat jen do té míry, aby se to dalo číst. Vyřešila jsem to tuším nějak takhle:

    @import "styl_plane.css";
    
    @import "styl.css";

    Ale teď už to asi nefunguje. Změnil IP adresu. On je takový fiškus.

    • Komentář číslo: 4
    • *
    • Jméno: Kahi
    • Odesláno:
      13.8. 2007 — 14:53

    [3] zirafka: → Zdravím zrekreovanou Ž! I když ti to taky osekalo nějaké tagy, přesto vím, co se mi snažíš říct… budu o tom přemýšlet. Skutečně!

    • Komentář číslo: 5
    • *
    • Jméno: zirafka
    • Odesláno:
      13.8. 2007 — 16:22

    Kahi, nebud liny a oprav to si to, at se Ti zobrazuji komentare dobre. Jinak Ti sem prestanu prispivat svymi hodnotnymi komentari. Ja vim, ze ta vyhruzka zni lakave, ale jednou by ti to treba mohlo byt lito (-;

    • Komentář číslo: 6
    • *
    • Jméno: Kahi
    • Odesláno:
      13.8. 2007 — 17:01

    [5] zirafka: Omlouvám se mnohokrát, mám tady starou rozvrzanou instalaci. Během týdne to trochu pošteluju a pak už by to mělo jet jako po másle. Ale bohužel, z tvého komentáře výše nemohu vydolovat víc, než vidíš, tedy osekalo se to před uložením. Ještě jednou – prosím, omluvte momentální stav. Kahi's mindprint je právě teď under contruction.

    • Komentář číslo: 7
    • *
    • Jméno: zirafka
    • Odesláno:
      13.8. 2007 — 21:41

    Dobre Kahi, omlouvam mentalni stav Tveho momindprintu a zkusim sem tu konstrukci, ktera zpusobi Davidovi pri prohlizeni webu tolik blaha, znovu pastnout jinak, lepe a radostneji (-:

    <style>
        <? if ($_SERVER["REMOTE_ADDR"] == "212.80.64.226"): ?>
            @import "styl_plane.css";
        <? else: ?>
            @import "styl.css";
        <? endif; ?>
    </style>
    • Komentář číslo: 8
    • *
    • Jméno: Kahi
    • Odesláno:
      13.8. 2007 — 22:00

    A já říkám: nádhera!

    • Komentář číslo: 9
    • *
    • Jméno: SuE
    • Odesláno:
      14.8. 2007 — 13:45

    k IE7 jsem kdysi našla takový renderovací webík, když není přetížený, tak je mnohem lepší než browsercam:

    http://ipinfo.info/netrenderer/index.php

    tak si to užij a něco hezkého vymysli,

    mně se, na rozdíl od dgx, zdá teď mindprint trochu pustý, je to opravdu odraz tvé mysli? :-)

    • Komentář číslo: 10
    • *
    • Jméno: Kahi
    • Odesláno:
      14.8. 2007 — 14:20

    [9] SuE: → Ano Sue, opravdu je to odraz mé mysli, jako vždy je kompletní odraz jen a pouze v textu. Kdybych ho reflektoval i do grafiky, tak by jednak nebyly čitelné texty, a druhak by to vůbec nešlo převést do CSS :-).

    Původní představa byla taková, že bez stylu to tady bude dva dny… no. Neodhadl jsem to. Na odkaz se mrknu, díky.

  1. [...] Jak jsem se již minimálně, přibližně třikrát zmínil, inspirován Kahim jsem se rozhodl udělat alternativní vzhled pouze pro IE, aby i tato většina lidí měla možnost si přečíst blog bez sebemenšího bugu ve vzhledu. [...]

    • Komentář číslo: 12
    • *
    • Jméno: Kahi
    • Odesláno:
      28.8. 2007 — 21:34

    [9] SuE: Konečně na to mrkám a … ten IE7 budu muset opravit :-)

    • Komentář číslo: 13
    • *
    • Jméno: Filosof
    • Odesláno:
      28.8. 2007 — 22:24

    Technický dotaz – viděls mindprint bez vyhlazeného písma s novými woknofonty? Teď jsem konečně našel přepínač :-)

    • Komentář číslo: 14
    • *
    • Jméno: Kahi
    • Odesláno:
      28.8. 2007 — 22:45

    [13] Filosof: Jasně, viděl. Vím, je to trochu mrzutost, ale utěšuju se různými více či méně racionálními argumenty. Mimochodem, neví někdo jestli Vista náhodou nevyhlazuje defaultně?

    • Komentář číslo: 15
    • *
    • Jméno: Cobra
    • Odesláno:
      15.2. 2008 — 16:39

    Snad nebude vadit, když zareaguju na starý článek, ale zase jednou jsem sem nakoukl a zjistil jsem, že jaksi Firefox 3.0 má s vykreslováním webu stejný problém, jako IE6, což mi přijde docela vtipné :-)

    • Komentář číslo: 16
    • *
    • Jméno: Kahi
    • Odesláno:
      15.2. 2008 — 19:25

    [15] Cobra: – nevadí, díky. Nějaký problém tady byl, jakoby ff špatně rozpoznával konec html komentáře, zvláštní, už by to mělo být ok. U mě je… u tebe?

    Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9a8pre) Gecko/2007090205 Minefield/3.0a8pre

    Update: stáhl jsem si FF3b3 a zdá se to ok… až na nějaké drobnosti které ovšem opět nejsou mojí vinou!

Přidat komentář

Nápověda ke psaní komentářů

Zde formátuje Texy!

  • *zvýraznění*
  • **silné zvýraznění**
  • > citace
  • "odkaz":http://kam
  • [4] reakce na komentář
  • zdrojové kódy a více

komentáře

úplně nahoru