css - HTML wide tables should scroll, narrow tables should stretch to fill parent -
in app there's option add auto-generated tables , need make them scroll-able (overflow-x) when table wider containing parent. solution works wider tables, not tables narrower parent, need them stretch across parent container. codepen here.
html:
<div id="parent"> <table cellspacing="0" width="100%" class="scroll"> <tbody> <tr class="ms-rtetableheaderrow-default"> <th rowspan="1" colspan="3">dasdasdas</th> <th rowspan="1" colspan="3">dasdasdas</th> <th rowspan="1" colspan="3">dasdasdas</th> <th rowspan="1" colspan="3">dasdasdas</th> <th rowspan="1" colspan="3">dasdasdas</th> <th rowspan="1" colspan="3">dasdasdas</th> <th rowspan="1" colspan="3">dasdasdas</th> </tr> <tr class="ms-rtetableoddrow-default"> <th class="ms-rtetablefirstcol-default" rowspan="1" colspan="1">dasdasdas<br>dasdasdas<br>dasdasdas</th> <td class="ms-rtetableoddcol-default">dasdasdas dasdasdas </td> <td class="ms-rtetableevencol-default">dasdasdas</td> <td class="ms-rtetableoddcol-default"> </td> </tr> <tr class="ms-rtetableevenrow-default"> <th class="ms-rtetablefirstcol-default" rowspan="1" colspan="4">dasdasdas</th> <td class="ms-rtetableoddcol-default">dasdasdas</td> <td class="ms-rtetableevencol-default">dasdasdas</td> <td class="ms-rtetableevencol-default">dasdasdas</td> </tr> <tr class="ms-rtetableoddrow-default"> <th class="ms-rtetablefirstcol-default" rowspan="1" colspan="1">dasdasdas</th> <td class="ms-rtetableoddcol-default">dasdasdas<br>dasdasdas</td> <td class="ms-rtetableevencol-default">dasdasdas<br>dasdasdas</td> </tr> <tr class="ms-rtetablefooterrow-default"> <th class="ms-rtetablefooterfirstcol-default" rowspan="1" colspan="4">dasdasdas</th> <td class="ms-rtetablefooteroddcol-default" rowspan="1">dasdasdas</td> <td class="ms-rtetablefooterevencol-default" rowspan="1">dasdasdas</td> <td class="ms-rtetablefooteroddcol-default" rowspan="1">dasdasdas</td> <td class="ms-rtetablefooterevencol-default" rowspan="1">dasdasdas</td> <td class="ms-rtetablefooteroddcol-default" rowspan="1">dasdasdas</td> <td class="ms-rtetablefooterevencol-default" rowspan="1">dasdasdas</td> </tr> </tbody> </table> <table cellspacing="0" width="100%" class="ms-rtetable-default scroll" style="font-size:1em"> <tbody> <tr> <th rowspan="1" colspan="1">title 1</th> <th rowspan="1" colspan="1">this table should span across parent</th> </tr> <tr> <th rowspan="1" colspan="1">content</th> <td >contentcontentcontentcontentcontentcontentcontentcontentcontentcontent</td> </tr> </tbody> </table> </div> css:
td,th{ border:1px solid black; } #parent{ width: 700px; } table{ border:1px solid blue; padding: 10px; } .scroll{ display: block; overflow-x: auto; } tr { display: table-row; vertical-align: inherit; border-color: inherit; } tbody { display: table-row-group; vertical-align: middle; border-color: inherit; }
i took @ codepen , looks fine me. see happening cells aren't taking entire width. tables (blue borders) spanning entire width, cells width fit it's content. if add following cells
td, th { width:100%; } your table cells span full width of table. being said, maybe want second cell span full width. add custom class width: 100%; .
Comments
Post a Comment