Ik heb een CSS-probleem waar ik maar niet uitkomt; ik heb al van alles geprobeerd maar begin langzamerhand te denken dat ik wellicht de oplossing in de verkeerde elementen aan het zoeken ben.
Eerst maar even de relevante code:
Qua CSS heb ik alles wat met color, border, margin en padding te maken heeft weggelaten.
Het probleem
Zoals misschien duidelijk uit de code wil ik in al mijn headers 3 elementen plaatsen. Deze elementen zitten gewrapped in een div met width 100% waardoor alle 3 de elementen naast elkaar in de header komen. De titel links (float: left) en 2 divs met achtergrondafbeelding rechts (float: right). So far so good! De hele tabel zit gewrapped in een div met overflow-x: auto. De bedoeling is dat, wanneer de tabel te groot wordt, er een scrollbalk komt. De scrollbalk komt er inderdaad, maar op dat moment worden ook de 2 right-floatende divs onder de left-floatende div geplaatst.
Ik ben al uren mijn elementen aan het aanpassen, van display: block naar inline-block naar flex maar ik kom er niet meer uit. Even dacht ik het probleem opgelost te hebben door op mijn wrappende div in de header width:max-content in te stellen maar dit geeft alleen goed resultaat in Chrome
Eerst maar even de relevante code:
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| <div class="datatable-container"> <table class="datatable"> <tr class="left"> <th> <div class="datatable-th"> <div class="dt-title"> <p>TableHeader</p> </div> <div class="dt-option"> <div class="dt-sort-desc-active"></div> </div> <div class="dt-option"> <div class="dt-filter-inactive"></div> </div> </div> </th> <th> [etc.] |
Cascading Stylesheet:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| .datatable-container { display: block; overflow-x: auto; } div.datatable-th { white-space:nowrap; display: block; width: 100%; vertical-align: top; } .datatable div.dt-title { display: inline-block; float: left; height: 24px; line-height: 24px; white-space: nowrap; overflow: hidden; vertical-align: top; } .datatable div.dt-option { display: inline-block; float: right; height: 24px; width: 24px; margin-left: 5px; vertical-align: top; } |
Qua CSS heb ik alles wat met color, border, margin en padding te maken heeft weggelaten.
Het probleem
Zoals misschien duidelijk uit de code wil ik in al mijn headers 3 elementen plaatsen. Deze elementen zitten gewrapped in een div met width 100% waardoor alle 3 de elementen naast elkaar in de header komen. De titel links (float: left) en 2 divs met achtergrondafbeelding rechts (float: right). So far so good! De hele tabel zit gewrapped in een div met overflow-x: auto. De bedoeling is dat, wanneer de tabel te groot wordt, er een scrollbalk komt. De scrollbalk komt er inderdaad, maar op dat moment worden ook de 2 right-floatende divs onder de left-floatende div geplaatst.

Ik ben al uren mijn elementen aan het aanpassen, van display: block naar inline-block naar flex maar ik kom er niet meer uit. Even dacht ik het probleem opgelost te hebben door op mijn wrappende div in de header width:max-content in te stellen maar dit geeft alleen goed resultaat in Chrome


Hoeder van het Noord-Meierijse dialect