JSFiddle - React, Tailwind, and code Playground
HTML
<div>
<nav>
Nav
</nav>
<div class="middle">
middle
</div>
<div class="content">
<div class="left">
<div>AAA</div>
</div>
<div class="right">
<div class="table">
<div class="header">
<div class="head sticty">B1</div>
<div class="head head2 sticty">B2</div>
<div class="head">B3</div>
<div class="head">B4</div>
<div class="head">B5</div>
<div class="head">B6</div>
<div class="head">B7</div>
<div class="head">B8</div>
<div class="head">B9</div>
<div class="head">B10</div>
<div class="head">B11</div>
</div>
<div class="body">
<div class="row">
<div class="col sticty">1: Content1</div>
<div class="col sticty">1: Content2</div>
<div class="col">1: Content3</div>
<div class="col">1: Content4</div>
<div class="col">1: Content5</div>
<div class="col">1: Content6</div>
<div class="col">1: Content7</div>
<div class="col">1: Content8</div>
<div class="col">1: Content9</div>
<div class="col">1: Content10</div>
<div class="col">1: Content11</div>
</div>
<div class="row">
<div class="col sticty">Content1</div>
<div class="col col2 sticty">Content2</div>
<div class="col">Content3</div>
<div class="col">Content4</div>
<div class="col">Content5</div>
<div class="col">Content6</div>
<div class="col">Content7</div>
<div class="col">Content8</div>
<div class="col">Content9</div>
<div class="col">Content10</div>
<div class="col">Content11</div>
</div>
<div class="row">
<div class="col sticty">Content1</div>
<div class="col col2 sticty">Content2</div>
<div...
SCSS
body {
margin: 0;
overflow-x: hidden;
}
nav {
color: white;
background: blue;
height: 30px;
padding: 6px;
position: sticky;
top: 0;
z-index: 4;
}
.content {
display: flex;
flex-direction: row;
position: sticky;
left: 0;
top: 0;
.left {
color: white;
background: green;
height: 1000px;
text-align: center;
min-width: 100px;
margin: 0 auto;
vertical-align: middle;
line-height: 1000px;
}
.right {
color: white;
background: red;
text-align: center;
overflow: scroll;
position: relative;
.table {
.header {
position: absolute;
min-width: 100vw;
background: purple;
display: flex;
z-index: 3;
}
.body {
border: 1px solid black;
.row {
display: flex;
}
}
.head, .col {
border: 1px solid black;
min-width: 110px;
position: relative;
}
.sticty {
position: sticky;
left: 0;
z-index: 2;
}
.head {
background: purple;
left: 0;
}
.col {
background: red;
left: 0;
}
.head2, .col2 {
left: 110px;
}
}
}
}