Postup tvorby stylu

Narozdφl od HTML, kde se pomocφ kaskßdov²ch styl∙ jen tu a tam upravil vzhled n∞kterΘ Φßsti strßnky, vy₧aduje pou₧itφ CSS v kombinaci s XML mnohem peΦliv∞jÜφ p°φstup. Standardn∞ se toti₧ XML dokument zobrazuje jako jeden dlouh² odstavec bez ₧ßdnΘho formßtovßnφ. Stylem bychom proto m∞li nastavit formßtovßnφ pro ka₧d² element, kter² se v dokumentu vyskytuje.

Nejd°φve ze vÜeho se musφme u ka₧dΘho elementu rozhodnout, jak se bude zobrazovat û zda jako samostatn² odstavec nebo jako souΦßst odstavce. Podle toho se elementy rozliÜujφ na tzv. blokovΘ a inline. Mezi blokovΘ pat°φ odstavce, nadpisy, obrßzky a dalÜφ. Je pro n∞ typickΘ, ₧e p°ed nimi a za nimi je zalomen tok textu. Inline elementy obvykle zp∙sobujφ pouze zm∞nu pφsma.

RozliÜenφ blokov²ch a inline element∙ se d∞je pomocφ vlastnosti display, kterß m∙₧e mφt hodnotu block nebo inline. Pro nßroΦn∞jÜφ formßtovßnφ m∙₧eme °φci, ₧e n∞jak² element se mß pova₧ovat za tabulku, °ßdku tabulky nebo bu≥ku tabulky. P°φsluÜnß Φßst dokumentu se pak zformßtuje jako tabulka.

Po definovßnφ zßkladnφho zp∙sobu zobrazenφ si m∙₧eme vyhrßt s nastavenφm dalÜφch vlastnostφ, kterΘ ovliv≥ujφ barvy, velikost, zp∙sob zarovnßnφ, pou₧itΘ pφsmo apod.

My si vÜe ukß₧eme na jednoduchΘm dokumentu, kter² obsahuje XML podobu jednoduchΘho cenφku.

P°φklad 1. Ukßzkov² XML dokument

<?xml version="1.0" encoding="windows-1250"?>
<?xml-stylesheet href="cenik.css" type="text/css"?>
<cenik>
  <nazev>Nab■dka procesor pro levn← PC</nazev>
  <platnost>plat■ do 30.5.2000</platnost>
  <kontakt>V p￸■pad↓ z£jmu, kontaktujte naレe obchodn■ odd↓len■
    na telefonu <tel>02/20304050</tel> nebo pomoc■ e-mailu 
    <email>obchod@firma.cz</email>.
  </kontakt>
  <obsah>
    <polozka>
      <vyrobce>Intel</vyrobce>
      <kategorie>CPU</kategorie>
      <nazev>Celeron 333A MHz 128c</nazev>
      <cena>3022</cena>
    </polozka>
    <polozka bomba="ano">
      <vyrobce>Intel</vyrobce>
      <kategorie>CPU</kategorie>
      <nazev>Celeron 333A MHz 128c BOX</nazev>
      <cena>1166</cena>
    </polozka>
    <polozka>
      <vyrobce>Intel</vyrobce>
      <kategorie>CPU</kategorie>
      <nazev>Celeron 366A MHz 128c Box</nazev>
      <cena>3821</cena>
    </polozka>
    <polozka>
      <vyrobce>Intel</vyrobce>
      <kategorie>CPU</kategorie>
      <nazev>Celeron 400A MHZ 128c Box</nazev>
      <cena>7117</cena>
    </polozka>
  </obsah>
</cenik>

Pro jeho formßtovßnφ jsme vytvo°ili jednoduch² styl, kter² prakticky ilustruje pou₧itφ kaskßdov²ch styl∙. V²slednΘ zobrazenφ v prohlφ₧eΦi zachycuje obrßzek 1.

P°φklad 2. Styl v jazyce CSS û cenik.css

/* Spole│n← vlastnosti pro cel� dokument */
cenik { display: block;
        background-color: white;
        font-family: Verdana, Helvetica, sans-serif;
        padding-left: 10px;
        padding-right: 10px }

/* Blokov← elementy */
cenik > nazev, platnost, kontakt { display: block }
cenik > nazev { font-size: 24pt;
                text-align: center;
                color: blue;
                margin: 10pt }
platnost { font-style: italics;
           text-align: center }
kontakt { font-size: smaller;
          text-aling: justify;
          margin-top: 6pt }

/* Inline elementy */
tel, email { display: inline;
             font-weight: bold;
             color: red }

/* Tabulka cen■ku */
obsah { display: table;
        padding: 4px;
        border: solid;
        margin: 20px }

/* Polo゙ky cen■ku tvo￸■ ￸£dky tabulky */
polozka { display: table-row }
polozka[bomba] { background-color: yellow }

/* ᅳdaje o v�robku tvo￸■ bu￲ky tabulky */
vyrobce, nazev, cena { display: table-cell;
                       padding-left: 10px;
                       padding-right: 10px }
vyrobce { font-style: italic }
nazev { font-weight: bold }
cena { color: #808080;
       font-weight: bold }

/* Kategorie se nezobrazuje */
kategorie { display: none }

Obrßzek 1. Zobrazenφ XML dokumentu se stylem v prohlφ₧eΦi

⌐ Ji°φ Kosek 2000-2001