[HTML] Hoe tabelcel inhoud aan tabelbreedte laten aanpassen?

Pagina: 1
Acties:

  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022
Als ik de inbox van Gmail bekijk, worden mijn emailtjes in wat lijkt een tabel weergegeven. Elke regel in die tabel ziet er als volgt uit:

code:
1
2
3
+-------------------+-----------------------------------------------+-------+
|email adres zender | email subject - eerste woorden van email body | datum |
+-------------------+-----------------------------------------------+-------+

Als ik mijn browservenster vergroot of verklein, schaalt de middelste cel mee. Bijzonder is dat de inhoud van die cel niet op de server al wordt afgebroken (bijvoorbeeld na 100 karakters), maar dat de tekst in die cel doorloopt tot aan het einde van de cel. Als ik dus mijn browserscherm verklein, gebeurt er met bovenstaande tabelrij het volgende:
code:
1
2
3
+-------------------+-----------------------------------+-------+
|email adres zender | email subject - eerste woorden van| datum |
+-------------------+-----------------------------------+-------+

Zie dat de inhoud van de middelste cel nu eindigt bij "van" in plaats van "body" zoals hierboven. De celinhoud wordt dus niet gewrapped. Het lijkt wel of de datum cel "over" de middelste cel heen schuift. In het echt ziet het er zo uit (let op de rode kaders):

Afbeeldingslocatie: http://www.danandan.luna.nl/got/gmail1.gif

En nu met een verkleind venster:

Afbeeldingslocatie: http://www.danandan.luna.nl/got/gmail2.gif

Mijn vraag is: hoe doet Google dit? Ik kan niet in de source kijken, want deze is (terecht ;)) geobscured. Is dit eigenlijk wel een HTML tabel of zijn het allemaal losse divjes? Of hebben ze een div in de middelste tabelcel geplaatst? En wat zijn dan de properties van die div of td?

[ Voor 29% gewijzigd door Reveller op 29-12-2006 12:15 ]

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."


  • DelTorro
  • Registratie: December 2004
  • Laatst online: 01-01-2024
Dit komt volgens mij simpelweg omdat er gebruik wordt gemaakt van frames, en geen tabellen (althans, dat gedeelte dat jij bedoelt volgens mij)

  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022
Nee, er worden geen frames gebruikt. Nadat ik de "source chart" van Gmail heb bekeken (via Firefox plugin die de gerenderde pagina tekent in blokken), en de css van gmail heb gedownload, zag ik de "text-overflow" property. Deze kende ik niet, dus via Google kwam ik uit op http://www.blakems.com/archives/000077.html, welke deze property bespreekt (toevallig genoeg aan de hand van de Gmail inbox!). Echter, text-overflow is IE only, maar Gmail gedraagt zich bij mij gelijk in IE en FF. Verder dan dit kwam ik niet. Nogmaals, de Gmail source is erg lastig te lezen. Heeft iemand een idee?

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Vrij simpel:
HTML:
1
2
3
4
5
6
<table border=1 style="table-layout:fixed;width:100%">
    <tr>
        <td style="width:100px">foo
        <td style="white-space: nowrap; overflow: hidden">Een lange tekst Een lange tekst Een lange tekst Een lange tekst Een lange tekst Een lange tekst Een lange tekst
        <td style="width:120px">12-10-2006
</table>

(inline styles gebruikt voor eenvoud)

Intentionally left blank


  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022
Crisp, dank je! Bij mij ging het fout omdat ik geen "table-layout:fixed;" in de tabel tag had staan :)

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."