• Novinky
  • Informatika
  • Grafika
  • Účetnictví
  • Vzdělání
  • O serveru
Progr.cz - tvorba software
  • Algoritmy
  • Delphi 2005
  • Delphi 6
  • Download
  • Hardware
  • HTML
  • Internet
  • MySQL
  • Odkazy
  • PHP
  • Různé
  • Software
Reklama
Profesionální doučování účetnictví a matematiky SOŠ - Praha 8 Kobylisy

Tabulka o šířce orámování 1px - 1/1

6. 1. 2006 23:41
HTML, Informatika, Novinky

Tabulka o šířce orámování 1 pixel byla vždy v HTML trochu problém. Standardně je tabulka tvořena dvěmi orámováními, které jednak nevypadají příliš dobře a navíc v případě tisku zbytečně plýtváme inkoustem či tonerem. Ukážeme si, jak vytvořit jednoduchou tabulku o šířce okraje 1px vyhovující standardu XHTML.

Normální tabulka

Jméno: Josef
Příjmení: Novák

<table border="1">
<tr>
  <th>Jméno:</th>
  <td>Josef</td>
</tr>
<tr>
  <th>Příjmení:</th>
  <td>Novák</td>
</tr>
</table>

Jak udělat tabulku s jednoduchým orámováním o šířce 1px?

Dříve se například používaly pro dosažení efektu borderu o šířce 1 pixelu dvě vnořené tabulky. Border tak byl vlastně vykreslen pozadím spodní tabulky. Není to však ideální řešení. Nejenže vnořování tabulek není vhodné, navíc při tisku tabulky border nebyl vidět, protože tisk pozadí je většinou ignorován.

V knize nakladatelství Zoner Press Webdesign s webovými standardy je elegantně popsané následující řešení jednopixlové tabulky. Využívá toho, že lze nastavit jednotlivé barvy nitřních a vnějších okrajů, a že lze nastavit šířku okraje na 1px pomocí stylů. Dále elegantně řeší pomocí vlastnosti border-collapse spojení okrajů v místech překřížení. Bez nastavení této vlastnosti by v místech překřížení vznikala jednopixlová mezera.

Tato tabulka se šířkou 1px funguje v IE, Mozzila Firefox i Opeře. Bezproblémů lze se tabulka tiskne i s rámečkem.

Tabulka se šířku rámečku rovnou 1 pixelu

Jméno: Josef
Příjmení: Novák

<style type="text/css">
  table.border1pxa {
    border-top: 1px solid #999;
    border-left: 1px solid #999;
    border-collapse: collapse;
  }
  table.border1pxa td, table.border1pxa th {
    border-right: 1px solid #999;
    border-bottom: 1px solid #999;
    padding: 2px;
  }
</style>
...

<table class="border1pxa">
<tr>
  <th>Jméno:</th>
  <td>Josef</td>
</tr>
<tr>
  <th>Příjmení:</th>
  <td>Novák</td>
</tr>
</table>

Případně lze výše uvedené řešení zjednodušit na:

Jméno: Josef
Příjmení: Novák

<style type="text/css">
  table.border1pxb {
    border-collapse: collapse;
  }
  table.border1pxb td, table.border1pxb th {
    border: 1px solid #999;
    padding: 2px;
  }
</style>
...

<table class="border1pxb">
<tr>
  <th>Jméno:</th>
  <td>Josef</td>
</tr>
<tr>
  <th>Příjmení:</th>
  <td>Novák</td>
</tr>
</table>

Tato druhá jednodužší verze prý nefunguje správně v IE/Mac, kde jsou vidět zdvojené okraje. Je čistě na Vás, které verzi dáte přednost.

 
 
Obsah článku:
  • 1/1
 
Copyright © 2010 Jitka Vachtová, všechna práva vyhrazena.
Valid XHTML 1.0 Strict
Valid CSS