Zo nu en dan wil ik in de layout van een webpagina twee elementen naast elkaar zetten, vroeger deed ik dat middels een table.
Maar dat is nogal vies. Tegenwoordig doen we dat natuurlijk (bijvoorbeeld) zo:
Als we nu wat met css spelen kunnen we de twee items zonder problemen naast elkaar plaatsen:
Maar ik krijg het met geen mogelijkheid voor elkaar hetzelfde gedrag als dat van twee <td>'s te simuleren. Twee <td>'s naast elkaar hebben namelijk altijd dezelfde hoogte, namelijk de hoogte van de hoogste (meeste content) van de twee.
De <table> kan bijvoorbeeld zo 'gestyled' worden:
Wat er nu door de browser 'gerenderd' wordt is een 400px brede table met aan de linker kant een blauwe kolom van 100px breed. De rechter kant is rood. Beide zijn even hoog, zo hoog als de hoogste van de twee. De breedte van de rechterkolom is 100% van de breedte van de parent minus de 100px van de 'links' <td>.
Hoe kan ik in godensnaam het hierboven beschreven gedrag zonder gebruik van een <table> voor elkaar krijgen? Ik heb persoonlijk het idee, na heel lang prutsen met zowel display, float, clear en veel meer, dat dit zonder gebruik van tabellen gewoonweg niet mogelijk is.
Iemand suggesties?
HTML:
1
2
3
4
5
6
| <table class="container"> <tr> <td class="links">tekst-1</td> <td class="rechts">tekst-2<br>tekst-2<br>tekst-2<br>tekst-2<br></td> </tr> </table> |
Maar dat is nogal vies. Tegenwoordig doen we dat natuurlijk (bijvoorbeeld) zo:
HTML:
1
2
3
4
| <div class="container"> <div class="links">tekst-1<div> <div class="rechts">tekst-2<br />tekst-2<br />tekst-2<br />tekst-2<br /><div> </div> |
Als we nu wat met css spelen kunnen we de twee items zonder problemen naast elkaar plaatsen:
Cascading Stylesheet:
1
2
3
| .links { float: left; } |
Maar ik krijg het met geen mogelijkheid voor elkaar hetzelfde gedrag als dat van twee <td>'s te simuleren. Twee <td>'s naast elkaar hebben namelijk altijd dezelfde hoogte, namelijk de hoogte van de hoogste (meeste content) van de twee.
De <table> kan bijvoorbeeld zo 'gestyled' worden:
Cascading Stylesheet:
1
2
3
4
5
6
7
8
9
10
| .container { width: 400px; /* fixed width, variable height */ } .links { background: blue; width: 100px; /* fixed width */ } .rechts { background: red; } |
Wat er nu door de browser 'gerenderd' wordt is een 400px brede table met aan de linker kant een blauwe kolom van 100px breed. De rechter kant is rood. Beide zijn even hoog, zo hoog als de hoogste van de twee. De breedte van de rechterkolom is 100% van de breedte van de parent minus de 100px van de 'links' <td>.
Hoe kan ik in godensnaam het hierboven beschreven gedrag zonder gebruik van een <table> voor elkaar krijgen? Ik heb persoonlijk het idee, na heel lang prutsen met zowel display, float, clear en veel meer, dat dit zonder gebruik van tabellen gewoonweg niet mogelijk is.
Iemand suggesties?
[ Voor 22% gewijzigd door Verwijderd op 20-06-2004 13:36 ]