Autor Zpráva
HrochPepa
Profil
Celý den tady čtu jak se tvoří tabulky, koupil jsem si knížku o CSS. Veškerá moje snaha je marná. Sloupce s rozdílnou šířkou nemohu dostat vedle sebe.
Tabulka šířka 600, 6 sloupců, 48 řádků. Řádky jsou stejně vysoké - 12.
Sloupce: 1. =10, 2. =85, 3. =205, 4. =10, 5. =85, 6. =205 (první,druhý a třetí je shodný se čtvrtým,pátým a šestým)
Co mám špatně?
<table width="600" border=1 >

<tr><td width="10">&nbsp;1</td><td width="85">Buňka 2</td><td width="205">Buňka 3</td>
<td width="10">&nbsp;4</td><td width="85">Buňka 5</td><td width="205">Buňka 6</td></tr>
<tr><td width="10">&nbsp;1</td><td width="85">Buňka 2</td><td width="205">Buňka 3</td>
<td width="10">&nbsp;4</td><td width="85">Buňka 5</td><td width="205">Buňka 6</td></tr>
<tr><td width="10">&nbsp;1</td><td width="85">Buňka 2</td><td width="205">Buňka 3</td>
<td width="10">&nbsp;4</td><td width="85">Buňka 5</td><td width="205">Buňka 6</td></tr>

</table>
pavuk
Profil
V tomhle kódu nic, protože zobrazuje tabulku přesně podle požadavků a správně a ve shodě s tvým popisem, problém bude jinde
HrochPepa
Profil
pavuk:
Hm, tak budu pátrat, proč se to v IE nezobrazuje správně. Ještě dotaz, šlo by to jednoduše udělat v CSS, aby to nemuselo být v kódu tak dlouhé. Ukázka je vlastně na 3 řádky a musí jich být 48.
Radek9
Profil
HrochPepa:
Stačí nastavit šířku jen v prvním řádku. Nebo můžeš použít tag <col>.
pavuk
Profil
Mě se to v IE zobrazuje správně, v IE 6,7 i 8 a to ostatní viz. Radek9
Trejpa
Profil
HrochPepa:
Co mám špatně?
V uvedeném kódu nic, funguje podle zadání stejně v Internet Exploreru, Firefoxu, Chrome i Opeře.

Je zbytečné nastavovat šířku a výšku každé buňce zvlášť, když je mohou mít nastaveny celé sloupce, řádky nebo jejich skupiny.
<table width=600 border=1>
<colgroup height=12><col width=10><col width=85><col width=205><col width=10><col width=85><col width=205></colgroup>
<tr><td> 1	<td>Buňka 2	<td>Buňka 3	<td> 4	<td>Buňka 5	<td>Buňka 6
<tr><td> 1	<td>Buňka 2	<td>Buňka 3	<td> 4	<td>Buňka 5	<td>Buňka 6
<tr><td> 1	<td>Buňka 2	<td>Buňka 3	<td> 4	<td>Buňka 5	<td>Buňka 6
</table>

Všechny prohlížeče ti také stejně v poměru zadaných velikostí zmenšují buňky tak, aby se vešly i s okraji, mezibuněčnou mezerou a rámečkem do zadaných rozměrů tabulky.
HrochPepa
Profil
Tak jsem zkusil použít <col> - je to tak správně?
<table width="600" border=1 >
<colgroup>
  <col width="10" span="1">
  <col width="85" span="1">
  <col width="205" span="1">
  <col width="10" span="1">
  <col width="85" span="1">
  <col width="205" span="1">
 </colgroup>
 
 <tablerowgroup >
 <tr> repeat-x </tr>
</tablerowgroup >

<tr><td 1</td>1<td >Buňka 2</td><td >Buňka 3</td>
<td >&nbsp;4</td><td >Buňka 5</td><td >Buňka 6</td></tr>
<tr><td 1</td>1<td >Buňka 2</td><td >Buňka 3</td>
<td >&nbsp;4</td><td >Buňka 5</td><td >Buňka 6</td></tr>
<tr><td 1</td>1<td >Buňka 2</td><td >Buňka 3</td>
<td >&nbsp;4</td><td >Buňka 5</td><td >Buňka 6</td></tr>

</table>


Ještě jsem zkusil použít tablerowgroup, aby se řádky opakovaly. Ale to nejde. Jde nějak udělat aby se hned ukázala tabulka s 48 řádky? Něco jako opakovat 48x nebo tak nějak.
Trejpa
Profil
HrochPepa:
Vidím, že tomu moc nerozumíš.

Žádná značka <tablerowgroup> v HTML neexistuje.

Skupiny řádků v HTML oddělují značky <thead>, <tfoot> a <tbody> (podle významu).

<tr> repeat-x </tr>
Co si od toho slibuješ?
Značka <tr> může být jen v elementu (ne značce) thead, tfoot nebo tbody.
Značka <tr> může obsahovat jen elementy td a th, ne text.

aby se řádky opakovaly.
HTML je jazyk značkovací, ne programovací. Co napíšeš, to se zobrazí. Chceš-li čtyřicet osm řádků, napiš do HTML kódu čtyřicet osm řádků. Nic jako „aby se to opakovalo“ jazyk HTML neumí. Jestli chceš něco opakovat, použij nějaký skript (JS, PHP).

(Tabulka na 48 řádků.)
HrochPepa
Profil
Trejpa:
Ano, je pravda, moc tomu nerozumím. Učím se to. Mám knížku Kompletní průvodce CSS od Petr Staníčka a zkouším to podle toho. Tam jsem právě narazil na table row group (prvek seskupuje více řádků tabulky). Vím, že myslet znamená ......., ale pochopil jsem to tedy špatně. No nic. Moc děkuji za Váš čas a jdu pokračovat v učení.
panther
Profil
HrochPepa:
table-row-group je jedna z možných hodnot CSS vlastnosti display, nikoliv HTML tag. Asi s tím sis to spletl.
Trejpa
Profil
HrochPepa:
Mám knížku Kompletní průvodce CSS
No jo, kaskádové styly. Ty se ale takto do HTML kódu nezapisují.

Tam jsem právě narazil na table row group
Každá tabulka se skládá ze čtyř povinných úrovní bloků (elementů).
<table> - ohraničení tabulky
<tbody> | <thead> | <tfoot> - skupina řádků, počáteční značka <tbody> není povinná, ale jako element je (téměř) v každé tabulce
<tr> - řádek tabulky
<td> | <th> - buňka tabulky
(Také jsou některé nepovinné, jako caption, col, colgroup.)

Pro každý z nich je v kaskádových stylech vymyšlena hodnota vlastnosti display. Výchozí hodnota <tbody> je právě table-row-group. Tohle tě v začátcích ale nemusí vůbec zajímat, o tabulkové hodnoty zobrazení se obvykle nestarají ani profesionální kodéři. Tvá věta „prvek seskupuje více řádků tabulky“ je správná. Prvek s touto hodnotou (<tbody>) seskupuje buňky. Neopakuje je.
HrochPepa
Profil
Hoší, já Vám moc děkuji. Když to takhle vysvětlíte, tak to člověk lépe pochopí, než když to čtu pořád dokola - zkouším to- ono to nedělá to co si myslím, že by mělo dělat. Můžete mi poradit nějakou dobrou knížku pro začátečníka - kterou máte vyzkoušenou.
Trejpa
Profil
HrochPepa:
Můžete mi poradit nějakou dobrou knížku pro začátečníka - kterou máte vyzkoušenou.
Mě neučila žádná kniha, ale praxe. Stačí se do toho pustit, zkoušet a překonávat záludnosti. To ostatní přijde samo.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0