Làm thế nào để freeze table columns bằng css?
Mình muốn hỏi cách freeze columns, để các columns còn lại có thể scroll ngang được như google sheet https://support.google.com/docs/answer/54813?hl=en Lưu ý là khi set height cho table, nó vẫn phải scroll dọc được nữa (bow)
Mình có html thế này:
<table class="table">
   <caption>Optional table caption.</caption>
   <thead>
      <tr>
         <th>Rank</th>
         <th>First Name</th>
         <th>Last Name</th>
         <th>Username</th>
      </tr>
   </thead>
   <tbody>
      <tr>
         <th scope="row">1</th>
         <td>Mark</td>
         <td>Otto</td>
         <td>@mdo</td>
      </tr>
      <tr>
         <th scope="row">2</th>
         <td>Jacob</td>
         <td>Thornton</td>
         <td>@fat</td>
      </tr>
      <tr>
         <th scope="row">3</th>
         <td>Larry</td>
         <td>the Bird</td>
         <td>@twitter</td>
      </tr>
   </tbody>
</table>
Mình muốn cố định cột Rank, còn 3 cột còn lại có thể scroll ngang được, giống như thế này:

4 CÂU TRẢ LỜI
Cảm ơn bạn, mình còn muốn khi nhiều hàng hơn,
mình sẽ cố định height của table, lúc đó mình muốn table phải scroll dọc được nữa (bow)
trong ví dụ trên là do th.headcol có position: absolute; nên nếu set height và overflow-y: scroll cho div bọc table thì các cột th vẫn không scroll theo hàng tương ứng được.
Bạn tham khảo  Cách 1: https://codepen.io/saiidi/pen/mePdqo => ưu tiên dùng cách này hơn, xử lý code backend thoải mái hơn cách 2
Cách 2: http://jsbin.com/nolanole/1/edit?html,js,output
Cách 1: https://codepen.io/saiidi/pen/mePdqo => ưu tiên dùng cách này hơn, xử lý code backend thoải mái hơn cách 2
Cách 2: http://jsbin.com/nolanole/1/edit?html,js,output
@phucnh.dn.vn tuyệt vời, cảm ơn bạn nhiều (bow), mình sẽ thử 2 cách trên của bạn.
Mình nghĩ bạn có thể tạo một container chưa table của bạn. Set postition: relative cho container này.
Đồng thời sử dụng postition: absolute cho các ô mà thuộc cột mà bạn muốn nó cố định ở phía bên trái.
Nếu muốn hiển thị thanh cuộn cho table, bạn có thể set overflow-x: auto hoặc overflow-x: scroll cho container.
Bạn nên tìm hiểu thêm về thuộc tính postion và overflow trong css để hiểu rõ tác dụng của 2 thuộc tính này.
- Position: Căn chỉnh vị trí của cho một element.
- Overlow: Giúp sử lý khi nội dung bên trong quá lớn gây tràn.
 
  
  
  
  
 