Ik zit met een probleem in CSS3 en tabellen dat ik maar niet opgelost krijg, hopelijk kan iemand die wat beter in CSS3 is dan ik mij verder helpen of een alternatief aandragen:
randvoorwaarden: firefox of chrome, laatste versie, backward compatibiliteit is niet nodig, 't is voor een interne site, dus zoveel mogelijk cleane code en css.
Ik wil in mijn applicatie een twee kolommen layout. Een linker kolom waarin korte content komt en een rechter kolom waarin een SVG visualisatie komt. Deze visualisatie kan b.v. 900x800px zijn, maar soms groeien naar 3000x2000. Dit is geen probleem, er mag gescrolled worden (liever zelfs dan gepruts op de marge.)
De rechter kolom moet dus scroll bars krijgen zodra de content groter wordt dan de grootte van de rechter kolom.
Deze HTML heb ik nu:
CSS
Dit doet precies wat ik wil, een side area van 100px en de 'rightcolumn' div krijgt een horizontale scrollbar zodra de content groter wordt dan 1000px, mits de rightcolumn niet groter is dan de breedte van het browser scherm.
Wat me echter niet lukt is om de 'rightcolumn' automatisch op te laten vullen naar rechts, dus i.p.v. 1000px, zou het (100% van het browserscherm - 100px van de side bar) moeten worden. Maak ik de width van de content body 100% dan gaat het goed zolang de inhoud van de 'rightcolumn' div niet breder is dan het scherm. Wat er dan gebeurt is dat er een scrolbar komt in de hele browser en de rightcolumn div over de sidebar wordt geschoven en wordt het een lelijk geheel waarin je twee keer moet scrollen
randvoorwaarden: firefox of chrome, laatste versie, backward compatibiliteit is niet nodig, 't is voor een interne site, dus zoveel mogelijk cleane code en css.
Ik wil in mijn applicatie een twee kolommen layout. Een linker kolom waarin korte content komt en een rechter kolom waarin een SVG visualisatie komt. Deze visualisatie kan b.v. 900x800px zijn, maar soms groeien naar 3000x2000. Dit is geen probleem, er mag gescrolled worden (liever zelfs dan gepruts op de marge.)
De rechter kolom moet dus scroll bars krijgen zodra de content groter wordt dan de grootte van de rechter kolom.
Deze HTML heb ik nu:
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| <div id="content-body-wrapper"> <div id="content-body"> <!-- info side bar area --> <div id="leftcolumn"> <p>info side bar</p> </div> <!-- main svg area --> <div id="rightcolumn"> <div id="svgarea"></div> </div> <!-- End of main svg area --> </div> </div> |
CSS
Cascading Stylesheet:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| #content-body-wrapper { width: 100%; } #content-body { display:table-row; overflow-x:none; width: 1000px; } #leftcolumn { display:table-cell; width:100px; background: #dddddd; } #rightcolumn { display:inline-block; width:1000px; overflow-x: scroll; } |
Dit doet precies wat ik wil, een side area van 100px en de 'rightcolumn' div krijgt een horizontale scrollbar zodra de content groter wordt dan 1000px, mits de rightcolumn niet groter is dan de breedte van het browser scherm.
Wat me echter niet lukt is om de 'rightcolumn' automatisch op te laten vullen naar rechts, dus i.p.v. 1000px, zou het (100% van het browserscherm - 100px van de side bar) moeten worden. Maak ik de width van de content body 100% dan gaat het goed zolang de inhoud van de 'rightcolumn' div niet breder is dan het scherm. Wat er dan gebeurt is dat er een scrolbar komt in de hele browser en de rightcolumn div over de sidebar wordt geschoven en wordt het een lelijk geheel waarin je twee keer moet scrollen