Tabulky
border-collapse
V tabulkách se používají dva modely pro práci s rámečky: pro samostatné (separate) rámečky, kdy je zvlášť příslušně orámována každá buňka – a pro sloučené (collapsed) rámečky, kdy rámečky tvoří spíše oddělovače mezi buňkami, procházející skrz tabulku od začátku do konce.
- povolené hodnoty: collapse | separate | inherit
- výchozí hodnota: collapse
- lze použít: v prvcích typu „table“ a „inline-table“
Podle této hodnoty se řídí, zda se použije model samostatného (separate), či sloučeného (collapse) rámování buněk.
border-spacing
Tato vlastnost udává vzdálenost mezi rámečky jednotlivých buněk (je obdobou atributu „cellspacing“ v HTML). Pokud je uvedena jedna hodnota, použije se pro vodorovný i svislý odstup. V případě dvou hodnot první udává vodorovnou vzdálenost a druhá svislou.
- povolené hodnoty: <velikost><velikost> ? | inherit
- výchozí hodnota: 0
- lze použít: v prvcích typu „table“ a „inline-table“
empty-cells
Tato vlastnost řídí, jak je zobrazí (při samostatném rámovacím modelu) prázdné buňky a buňky s visibility:hidden. Při hodnotě show se kolem těchto buněk vykreslí rámeček, při hide nikoli. Pokud je prázdný celý řádek a všechny buňky v něm mají empty-cells:hide, chová se řádek, jako by měl display:none – tedy se vůbec nezobrazí.
- povolené hodnoty: show | hide | inherit
- výchozí hodnota: show
- lze použít: v prvcích typu „table-cell“
Slučovací model rámování
V tomto modelu může být každý rámeček kolem každé strany každé buňky definován na více místech – ve všech prvcích, které se na dané hraně stýkají (buňka, řádek, skupina řádků, sloupec, skupina sloupců i tabulka samotná). Proto jsou nutná pravidla, jak řešit konflikty, když každý z těchto prvků v jednom místě definuje rámeček jinak.
Jak se řeší konflikty u rámečků
Následující pravidla určují, který styl rámečku „vyhraje“ v případě konfliktu:
- rámečky s border-style: hidden mají absolutní přednost. Jakýkoli rámeček s touto vlastností v daném místě „přebije“ všechny ostatní styly.
- rámečky s border-style: none mají naopak nejmenší prioritu. Pouze mají-li všechny prvky, které se v daném místě stýkají, hodnotu none, rámeček se nevykreslí (nezapomínejme ovšem, že none je výchozí hodnota pro border-style; stačí tedy, aby rámeček neměl nikdo explicitně definován).
- pokud žádný z rámečků není hidden a alespoň jeden není none, přednost má silnější rámeček před tenčími. Pokud má více rámečků stejnou šířku (border-width), použije se rámeček se stylem, který má vyšší prioritu. Styly rámečků jsou seřazeny podle priority (od nejvyšší po nejnižší) takto: double, solid, dashed, dotted, ridge, outset, groove a nejnižší: inset.
- Pokud se rámečky liší pouze barvou, vítězí rámeček definovaný ve „vyšší vrstvě“ tabulky – viz výše.
Styly rámečků (vlastnost border-style) mohou mít v tabulkách stejné hodnoty jako jinde v CSS, ale v tabulkách mají některé hodnoty odlišný význam než v ostatních prvcích. Jedná se o hodnoty:
- hidden: stejně jako none, ale při slučovacím modelu rámování povoluje použití rámečku z jiného prvku (viz řešení konfliktů výše)
- outset, resp. inset: v samostatném modelu rámování způsobuje, že celý prvek je zobrazen, jako by vystupoval, resp. byl zapuštěn do pozadí. Ve slučovacím modelu ale mají hodnoty stejný význam jako ridge, resp. groove.