Autor Zpráva
AM_
Profil
Zdravím,
potřeboval bych udělat něco jako toto:

Slovy prostě že určité 2 sloupce v tabulce budou mít půlící čáru na 2 různých místech.
Jelikož se tím de facto tvoří tři sloupce, kde vždy budou 2 buňky slité, logické by bylo toto:
<table>
<tr>
  <td style="width:50px" colspan="2">a</td>
  <td>b</td>
</tr>
<tr>
  <td style="width:20px">c</td>
  <td colspan="2">d</td>
</tr>
</table>


Bohužel, výsledek je takový, že browser prostě ten sloupec navíc "ignoruje" a tento kus HTML vykreslí ve 2 sloupcích, jako bych tam žádný colspan neměl.
Jasně, šlo by to vyřešit divy místo tabulky nebo tabulku rozdělit a začít novou, mám ale poměrně hodně komplikovanou tabulku pracovního výkazu, kde se buňky různě takto překrývají a nehodí se mi trhat ji na 2 - sladit rozměry druhé části tabulky, které jsou v některých ohledech jiné, ale v některých zase musí sedět, by byla dost otrava. Ptám se tedy, lze nějak docílit tohoto skrz tabulku? řešení typu jednopixelový řádek s rozepsanými buňkami abych to donutil browser vykreslovat správně bych taky raději nechal až nakonec.
Chamurappi
Profil
Reaguji na AM:
Ptám se tedy, lze nějak docílit tohoto skrz tabulku?
Přidej řádek, ve kterém budou tři buňky.
Aha, nečetl jsem tvoji poslední větu. Jiné řešení není. Ten řádek nemusí být viditelný.
habendorf
Profil
Nevím přesně čeho chceš dosáhnout, ale browser to vykresluje dobře. Když vyhodíš ty šířky, uvidíš to sám.
habendorf
Profil
Nebo možná hledáš border-collapse, těžko říct. Nevím v čem je problém.
AM_
Profil
Chamurappi
asi tedy není zbytí, chtěl jsem vědět, jestli neexistuje "čisté řešení", než tam nacpu řádek navíc.

habendorf

Nevím přesně čeho chceš dosáhnout, ale browser to vykresluje dobře
Tak to je krásné. "Nevím co chceš, ale tohle je dobře."

Když vyhodíš ty šířky, uvidíš to sám.
Bez těch to bude fungovat dost těžko :) to tomu co chci dává teprva smysl

myslím, že tak blbě jsem dotaz nepoložil, máš tu i obrázek
habendorf
Profil
AM:
„Nevím přesně čeho chceš dosáhnout, ale browser to vykresluje dobře“
Tak to je krásné. "Nevím co chceš, ale tohle je dobře."


Browser vykresluje správně to, co ty jsi nakódoval. Zesměšňující tón si nech na jiné fórum.
Bubák
Profil
Nebude jednodušší poskládat to z DIVů?
AM_
Profil
habendorf
Browser vykresluje správně to, co ty jsi nakódoval.
Samozřejmě vím, co jsi větou myslel, ale:
1) je mi to naprosto jasné a nevím, jak by mi to mělo pomoct
2) v IT je málo záhadnějších, nevyzpytatelnějších a různorodějších věcí, než vykreslování HTML v různých browserech, a právě v tomto spočíval můj dotaz - jak docílit toho, co chci, když intuitivně napsaný kód nefungoval

Nechtěl jsem tě zesměšňovat, jen ti naznačit, že tohle by šlo napsat snad do každého tématu tady, ale jak to komu pomůže?

Bubák
Nebude jednodušší poskládat to z DIVů?
nebude, viz celý úvodní příspěvek

Nakonec jsem to vyřešil jak psal Chamurappi (díky) tím skrytým řádkem, ale pořád nechápu, proč to bez toho řádku navíc nemůže fungovat (a nejde to ve všech browserech).
Bubák
Profil
AM_
V tomto případě jsem měl na mysli mít v řádku jednu buňku, vlevo DIV o požadované šířce a vedle něj druhý DIV. Nemusí to být nutně DIV, jde použít jakýkoliv vhodný element (třeba SPAN...), protože je floatovaný, bude se chovat jako blokový.
<style type="text/css">
table	{border-collapse: collapse; width: 80px;}
td	{padding: 0; margin: 0; border:2px solid #000}
table div, table span { float: left; padding: 0px 2px;}
..okraj {border-right: 2px solid #000;}
</style>
<table border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td style="background: #00f;">
      <div class="okraj" style="background: #ff0; width: 50px;">a</div>
      <div>b</div>
    </td>
  </tr>
  <tr>
    <td style="background: #0f0;">
      <div class="okraj" style="background: #f00; width: 20px;">c</div>
      <div>d</div>
    </td>
  </tr>
</table>

intuitivně napsaný kód nefungoval
Rozměry buněk nejsou zrovna intuitivní záležitost, taky jsem si myslel, že to musí fungovat.
AM_
Profil
Bubák
Jo, to je fakt tohle by šlo :) že mě to nenapadlo dřív, nedělat přes DIVy celou tabulku, ale jen kritickou část...

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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