.table { height: 100%; display: grid; grid-auto-rows: max-content; overflow: scroll; position: relative; } .cell { } .even { } .first_col { } .last_col { } .stick_left, .stick_right, .stick_top, .stick_bottom, .first_row, .sticky_col .first_col { position: sticky; z-index: 2; background: white; } .stick_left.stick_top, .stick_right.stick_top, .stick_left.stick_bottom, .stick_right.stick_bottom, .sticky_col .first_row.first_col, .first_row.stick_left, .first_row.stick_right { z-index: 3; } .first_row { top: 0; } .last_row { } .sticky_col .first_col { left: 0; } .ellipsis { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .resize_handle { position: fixed; width: 7px; top: 0; left: 0; display: none; z-index: 12; cursor: col-resize; } .measure_row { position: absolute; left: -100px; width: 1px; height: 1px; grid-column: 1; } .measure_col { position: absolute; top: -100px; width: 1px; height: 1px; grid-row: 1; }