0

I would like to freeze the first column of my html table. after a few attempts i manage to freeze it but somehow when i scroll the table horizontally the columns at the left seems like overlapped with the first column. i couldn't find a way to fix it. can you please help? you can use this codepen to test it out.

CSS:

table { width: 100%; position: relative; overflow: hidden; display: block; } thead { width: 100%; display: block; position: relative; overflow: visible; } thead th:nth-child(1) { position: relative; display: block; min-width:200px; } tbody { width: 100%; position: relative; display: block; max-height: 307px; overflow: scroll; } tbody tr td:nth-child(1) { position: relative; display: block; min-width:200px; } table th, table td { min-width: 150px; max-width: 150px; padding: 2px 3px; text-align: left; text-overflow: ellipsis; border: 1px solid #e1e1e1; } 

JS:

$(document).ready(function() { $('tbody').scroll(function(e) { $('thead').css("left", -$("tbody").scrollLeft()); $('thead th:nth-child(1)').css("left", $("tbody").scrollLeft()); $('tbody td:nth-child(1)').css("left", $("tbody").scrollLeft()); }); }); 
2

2 Answers 2

3

Simply set the background-color for first column?

table th:first-child, table td:first-child { background-color: #fff; } 
Sign up to request clarification or add additional context in comments.

3 Comments

it somehow fix my problem :)
sorry for stupid question, does the js above has dependency on the jquery? i try to remove jquery and it doesn't behave correctly.
somehow it didn't work as expected in my dash-plotly apps. community.plot.ly/t/freeze-first-column-in-html-table/12230
0

There some problem when you fixed column min-width I have fixed that by using

enter image description here

enter image description here

enter image description here

enter image description here

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.