JSFiddle - React, Tailwind, and code Playground
by Sampath_Madhuranga
HTML
<div class="outer">
<!-- <div class="inner fixed">
<table>
<tr>
<th class="hard_left">Header A</th>
<th class="next_left">Header B</th>
<th>Header C</th>
<th>Header D</th>
</tr>
<tr>
<td class="hard_left">col 1 - A</td>
<td class="next_left">col 2 - A Lorem ipsum dolor sit amet consectetur adipiscing elit dignissim tristique, mollis platea aenean netus sociosqu erat ornare fusce, habitasse bibendum euismod rutrum vivamus arcu scelerisque varius. Nascetur convallis porta semper dui cum ut lacinia, placerat hendrerit tempor mattis at risus quis et</td>
<td>col 3 - A</td>
<td>col 4 - A</td>
</tr>
<tr>
<td class="hard_left">col 1 - B</td>
<td class="next_left">col 2 - B</td>
<td>col 3 - B</td>
<td>col 4 - B</td>
</tr>
<tr>
<td class="hard_left">col 1 - C</td>
<td class="next_left">col 2 - C</td>
<td>col 3 - C</td>
<td>col 4 - C</td>
</tr>
<tr>
<td class="hard_left">col 1 - A</td>
<td class="next_left">col 2 - A</td>
<td>col 3 - A</td>
<td>col 4 - A</td>
</tr>
<tr>
<td class="hard_left">col 1 - A</td>
<td class="next_left">col 2 - A</td>
<td>col 3 - A</td>
<td>col 4 - A</td>
</tr>
<tr>
<td class="hard_left">col 1 - A</td>
<td class="next_left">col 2 - A</td>
<td>col 3 - A</td>
<td>col 4 - A</td>
</tr>
<tr>
<td class="hard_left">col 1 - A</td>
<td class="next_left">col 2 - A</td>
<td>col 3 - A</td>
<td>col 4 - A</td>
</tr>
</table>
</div>
-->
<div class="inner">
<table>
<tr>
<th class="hard_left">Header A</th>
<th class="next_left">Header B</th>
...
CSS
table {
table-layout: fixed;
width: 100%;
*margin-left: -100px;/*ie7*/
}
td, th {
vertical-align: top;
border-top: 1px solid #ccc;
padding:10px;
width:100px;
}
th {
/* position:absolute;
*position: relative; /*ie7*/
/* left:0; */
width:100px;
}
.hard_left {
position:absolute;
*position: relative; /*ie7*/
left:0;
width:100px;
}
.next_left {
position:absolute;
*position: relative; /*ie7*/
left:100px;
width:100px;
}
.outer {position:relative}
.inner {
overflow-x:scroll;
overflow-y:visible;
width:400px;
margin-left:200px;
}