Hướng dẫn fixed table header bootstrap codepen - tiêu đề bảng cố định bootstrap codepen

DigitalOcean cung cấp các sản phẩm đám mây cho mọi giai đoạn của hành trình của bạn. Bắt đầu với $ 200 trong tín dụng miễn phí!

Cách đây rất lâu khi tôi nhìn vào các tiêu đề và chân trang dính trong HTML

.view {
  margin: auto;
  width: 600px;
}

.wrapper {
  position: relative;
  overflow: auto;
  border: 1px solid black;
  white-space: nowrap;
}

.sticky-col {
  position: -webkit-sticky;
  position: sticky;
  background-color: white;
}

.first-col {
  width: 100px;
  min-width: 100px;
  max-width: 100px;
  left: 0px;
}

.second-col {
  width: 150px;
  min-width: 150px;
  max-width: 150px;
  left: 100px;
}
1 trong bài đăng trên blog Một bảng có cả tiêu đề dính và cột đầu tiên dính & NBSP; Trong đó, tôi chưa bao giờ sử dụng
.view {
  margin: auto;
  width: 600px;
}

.wrapper {
  position: relative;
  overflow: auto;
  border: 1px solid black;
  white-space: nowrap;
}

.sticky-col {
  position: -webkit-sticky;
  position: sticky;
  background-color: white;
}

.first-col {
  width: 100px;
  min-width: 100px;
  max-width: 100px;
  left: 0px;
}

.second-col {
  width: 150px;
  min-width: 150px;
  max-width: 150px;
  left: 100px;
}
2 trên bất kỳ phần tử
.view {
  margin: auto;
  width: 600px;
}

.wrapper {
  position: relative;
  overflow: auto;
  border: 1px solid black;
  white-space: nowrap;
}

.sticky-col {
  position: -webkit-sticky;
  position: sticky;
  background-color: white;
}

.first-col {
  width: 100px;
  min-width: 100px;
  max-width: 100px;
  left: 0px;
}

.second-col {
  width: 150px;
  min-width: 150px;
  max-width: 150px;
  left: 100px;
}
3,
.view {
  margin: auto;
  width: 600px;
}

.wrapper {
  position: relative;
  overflow: auto;
  border: 1px solid black;
  white-space: nowrap;
}

.sticky-col {
  position: -webkit-sticky;
  position: sticky;
  background-color: white;
}

.first-col {
  width: 100px;
  min-width: 100px;
  max-width: 100px;
  left: 0px;
}

.second-col {
  width: 150px;
  min-width: 150px;
  max-width: 150px;
  left: 100px;
}
4 hoặc
.view {
  margin: auto;
  width: 600px;
}

.wrapper {
  position: relative;
  overflow: auto;
  border: 1px solid black;
  white-space: nowrap;
}

.sticky-col {
  position: -webkit-sticky;
  position: sticky;
  background-color: white;
}

.first-col {
  width: 100px;
  min-width: 100px;
  max-width: 100px;
  left: 0px;
}

.second-col {
  width: 150px;
  min-width: 150px;
  max-width: 150px;
  left: 100px;
}
5 nào, bởi vì mặc dù Safari và Firefox có thể làm điều đó, Chrome không thể. Nhưng nó có thể thực hiện các tế bào bảng như
.view {
  margin: auto;
  width: 600px;
}

.wrapper {
  position: relative;
  overflow: auto;
  border: 1px solid black;
  white-space: nowrap;
}

.sticky-col {
  position: -webkit-sticky;
  position: sticky;
  background-color: white;
}

.first-col {
  width: 100px;
  min-width: 100px;
  max-width: 100px;
  left: 0px;
}

.second-col {
  width: 150px;
  min-width: 150px;
  max-width: 150px;
  left: 100px;
}
6 và
.view {
  margin: auto;
  width: 600px;
}

.wrapper {
  position: relative;
  overflow: auto;
  border: 1px solid black;
  white-space: nowrap;
}

.sticky-col {
  position: -webkit-sticky;
  position: sticky;
  background-color: white;
}

.first-col {
  width: 100px;
  min-width: 100px;
  max-width: 100px;
  left: 0px;
}

.second-col {
  width: 150px;
  min-width: 150px;
  max-width: 150px;
  left: 100px;
}
7, đó là một cách giải quyết tốt.

Vâng, điều đó đã thay đổi.

Âm thanh như một nỗ lực lớn đã đi vào các bảng hoàn toàn cải tiến trong động cơ kết xuất trong crom, đưa các bảng tăng tốc. Nó không chỉ là sự gắn bó đã được cố định, mà là tất cả các loại. Tôi chỉ tập trung vào thứ dính vào vì đó là những gì tôi nhìn vào.

Tiêu đề cho tôi là

.view {
  margin: auto;
  width: 600px;
}

.wrapper {
  position: relative;
  overflow: auto;
  border: 1px solid black;
  white-space: nowrap;
}

.sticky-col {
  position: -webkit-sticky;
  position: sticky;
  background-color: white;
}

.first-col {
  width: 100px;
  min-width: 100px;
  max-width: 100px;
  left: 0px;
}

.second-col {
  width: 150px;
  min-width: 150px;
  max-width: 150px;
  left: 100px;
}
3 và
.view {
  margin: auto;
  width: 600px;
}

.wrapper {
  position: relative;
  overflow: auto;
  border: 1px solid black;
  white-space: nowrap;
}

.sticky-col {
  position: -webkit-sticky;
  position: sticky;
  background-color: white;
}

.first-col {
  width: 100px;
  min-width: 100px;
  max-width: 100px;
  left: 0px;
}

.second-col {
  width: 150px;
  min-width: 150px;
  max-width: 150px;
  left: 100px;
}
4 có khả năng dính. Điều đó có vẻ như nó sẽ là trường hợp sử dụng phổ biến nhất ở đây.

table thead,
table tfoot {
  position: sticky;
}
table thead {
  inset-block-start: 0; /* "top" */
}
table tfoot {
  inset-block-end: 0; /* "bottom" */
}

Điều đó hoạt động trong cả ba trình duyệt chính. Bạn có thể muốn có được thông minh và chỉ dính chúng ở độ cao chế độ xem tối thiểu nhất định hoặc một cái gì đó, nhưng vấn đề là nó hoạt động.

Tôi đã nghe một số câu hỏi về các cột bảng là tốt. Bài viết gốc của tôi có một cột đầu tiên dính (đó là loại điểm). Mặc dù có một thẻ

Number First Name Last Name Employer
1 Mark Ham Micro
2 Jacob Smith Adob Adob Adob AdobAdob Adob Adob Adob Adob
3 Larry Wen Goog Goog Goog GoogGoog Goog Goog Goog Goog Goog
0, nhưng nó thật kỳ lạ. Nó không thực sự bao bọc các cột, nó giống như một con trỏ để có thể tạo kiểu cho cột nếu bạn cần. Tôi hầu như không bao giờ thấy nó được sử dụng, nhưng nó ở đó. Dù sao, bạn hoàn toàn có thể
Number First Name Last Name Employer
1 Mark Ham Micro
2 Jacob Smith Adob Adob Adob AdobAdob Adob Adob Adob Adob
3 Larry Wen Goog Goog Goog GoogGoog Goog Goog Goog Goog Goog
1 A
Number First Name Last Name Employer
1 Mark Ham Micro
2 Jacob Smith Adob Adob Adob AdobAdob Adob Adob Adob Adob
3 Larry Wen Goog Goog Goog GoogGoog Goog Goog Goog Goog Goog
0, nhưng bạn có thể tạo các cột dính. Bạn cần chọn tất cả các ô trong cột đó và dán chúng sang trái hoặc phải. Ở đây, sử dụng các thuộc tính logic

table tr th:first-child {
  position: sticky;
  inset-inline-start: 0; /* "left" */
}

Ở đây, một bảng sắp xếp đáng ghét trong đó

.view {
  margin: auto;
  width: 600px;
}

.wrapper {
  position: relative;
  overflow: auto;
  border: 1px solid black;
  white-space: nowrap;
}

.sticky-col {
  position: -webkit-sticky;
  position: sticky;
  background-color: white;
}

.first-col {
  width: 100px;
  min-width: 100px;
  max-width: 100px;
  left: 0px;
}

.second-col {
  width: 150px;
  min-width: 150px;
  max-width: 150px;
  left: 100px;
}
3,
.view {
  margin: auto;
  width: 600px;
}

.wrapper {
  position: relative;
  overflow: auto;
  border: 1px solid black;
  white-space: nowrap;
}

.sticky-col {
  position: -webkit-sticky;
  position: sticky;
  background-color: white;
}

.first-col {
  width: 100px;
  min-width: 100px;
  max-width: 100px;
  left: 0px;
}

.second-col {
  width: 150px;
  min-width: 150px;
  max-width: 150px;
  left: 100px;
}
4, và các cột đầu tiên và cuối cùng đều bị dính.

Tôi chắc chắn rằng bạn có thể làm một cái gì đó trang nhã với điều này. Như có thể:

Nếu bạn muốn một bảng trong đó chỉ các cột cuộn theo chiều ngang, bạn có thể ____55 cột đầu tiên (và chỉ định chiều rộng của nó một cách rõ ràng), sau đó bọc toàn bộ bảng trong một khối

Number First Name Last Name Employer
1 Mark Ham Micro
2 Jacob Smith Adob Adob Adob AdobAdob Adob Adob Adob Adob
3 Larry Wen Goog Goog Goog GoogGoog Goog Goog Goog Goog Goog
6. Tuy nhiên, đừng bận tâm đến việc thử điều này trong IE7 ...

HTML & CSS có liên quan:

table {
  border-collapse: separate;
  border-spacing: 0;
  border-top: 1px solid grey;
}

td,
th {
  margin: 0;
  border: 1px solid grey;
  white-space: nowrap;
  border-top-width: 0px;
}

div {
  width: 500px;
  overflow-x: scroll;
  margin-left: 5em;
  overflow-y: visible;
  padding: 0;
}

.headcol {
  position: absolute;
  width: 5em;
  left: 0;
  top: auto;
  border-top-width: 1px;
  /*only relevant for first row*/
  margin-top: -1px;
  /*compensate for top border*/
}

.headcol:before {
  content: 'Row ';
}

.long {
  background: yellow;
  letter-spacing: 1em;
}
1 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
2 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
3 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
4 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
5 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
6 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM

Vĩ cầm

Hướng dẫn fixed table header bootstrap codepen - tiêu đề bảng cố định bootstrap codepen

Đã trả lời ngày 21 tháng 8 năm 2009 lúc 15:31Aug 21, 2009 at 15:31

Eamon Nerbonneamon NerbonneEamon Nerbonne

45,9K19 Huy hiệu vàng95 Huy hiệu bạc165 Huy hiệu Đồng19 gold badges95 silver badges165 bronze badges

30

Điều này có thể dễ dàng thực hiện với sự trợ giúp của DataTables. Những người mới sử dụng bảng dữ liệu, vui lòng tham khảo https://datatables.net/ .its một plugin và cung cấp nhiều tính năng. cũng đó.

.view {
  margin: auto;
  width: 600px;
}

.wrapper {
  position: relative;
  overflow: auto;
  border: 1px solid black;
  white-space: nowrap;
}

.sticky-col {
  position: -webkit-sticky;
  position: sticky;
  background-color: white;
}

.first-col {
  width: 100px;
  min-width: 100px;
  max-width: 100px;
  left: 0px;
}

.second-col {
  width: 150px;
  min-width: 150px;
  max-width: 150px;
  left: 100px;
}
Number First Name Last Name Employer
1 Mark Ham Micro
2 Jacob Smith Adob Adob Adob AdobAdob Adob Adob Adob Adob
3 Larry Wen Goog Goog Goog GoogGoog Goog Goog Goog Goog Goog

Đã trả lời ngày 25 tháng 4 năm 2018 lúc 12:06

KirankiranNov 28, 2018 at 18:52

12 huy hiệu đồngCircuit Breaker

Tôi đã không kiểm tra từng câu trả lời cho câu hỏi này, nhưng sau khi phân tích hầu hết trong số họ, tôi thấy rằng thiết kế không thành công trong trường hợp dữ liệu đa dòng trong các ô hoặc đầu. Tôi đã sử dụng JavaScript để giải quyết điều này. Tôi hy vọng ai đó thấy điều này hữu ích.4 gold badges14 silver badges19 bronze badges

15

Lưu ý: Div "Container" chỉ để chứng minh rằng mã tương thích với chế độ xem di động.

Đã trả lời ngày 23 tháng 1 năm 2019 lúc 8:04

Kushagr Arorakushagr Arora

1.8081 Huy hiệu vàng9 Huy hiệu bạc

.tscroll {
  width: 400px;
  overflow-x: scroll;
  margin-bottom: 10px;
  border: solid black 1px;
}

.tscroll table td:first-child {
  position: sticky;
  left: 0;
  background-color: #ddd;
}

.tscroll td, .tscroll th {
  border-bottom: dashed #888 1px;
}

Heading 1 Heading 2 Heading 3
9:00 AAA BBB CCC DDD EEE FFF GGG HHH III JJJ KKK LLL MMM NNN OOO PPP QQQ
10:00 AAA BBB CCC DDD EEE FFF GGG HHH III JJJ KKK LLL MMM NNN OOO PPP QQQ
11:00 AAA BBB CCC DDD EEE FFF GGG HHH III JJJ KKK LLL MMM NNN OOO PPP QQQ
12:00 AAA BBB CCC DDD EEE FFF GGG HHH III JJJ KKK LLL MMM NNN OOO PPP QQQ
13:00 AAA BBB CCC DDD EEE FFF GGG HHH III JJJ KKK LLL MMM NNN OOO PPP QQQ
14:00 AAA BBB CCC DDD EEE FFF GGG HHH III JJJ KKK LLL MMM NNN OOO PPP QQQ
15:00 AAA BBB CCC DDD EEE FFF GGG HHH III JJJ KKK LLL MMM NNN OOO PPP QQQ
16:00 AAA BBB CCC DDD EEE FFF GGG HHH III JJJ KKK LLL MMM NNN OOO PPP QQQ
17:00 AAA BBB CCC DDD EEE FFF GGG HHH III JJJ KKK LLL MMM NNN OOO PPP QQQ

Đã trả lời ngày 6 tháng 8 lúc 7:26Aug 24, 2019 at 16:25

Hướng dẫn fixed table header bootstrap codepen - tiêu đề bảng cố định bootstrap codepen

kojow7kojow7kojow7

M Komaeim Komaei15 gold badges77 silver badges128 bronze badges

9

5.1432 Huy hiệu vàng17 Huy hiệu bạc28 Huy hiệu đồng is an interesting jQuery plugin that creates fixed headers and/or columns. Toggle fixed column to be true on the demo page to see it in action.

Hướng dẫn fixed table header bootstrap codepen - tiêu đề bảng cố định bootstrap codepen

Rigel1121

Trong HTML5, bạn có thể sử dụng CSS

.tscroll {
  width: 400px;
  overflow-x: scroll;
  margin-bottom: 10px;
  border: solid black 1px;
}

.tscroll table td:first-child {
  position: sticky;
  left: 0;
  background-color: #ddd;
}

.tscroll td, .tscroll th {
  border-bottom: dashed #888 1px;
}
6. Tuy nhiên, tôi giới thiệu bạn "Vuốt giữa các trang" tắt nếu bạn thực hiện trên Mac.1 gold badge16 silver badges24 bronze badges

Nhìn vào Codepen mẫuJan 4, 2011 at 15:31

Hướng dẫn fixed table header bootstrap codepen - tiêu đề bảng cố định bootstrap codepen

Đã trả lời ngày 22 tháng 6 năm 2017 lúc 12:32Markos Fragkakis

Hajimehajime18 gold badges64 silver badges101 bronze badges

8

Phù hiệu đồng 1294

Nếu bạn không muốn chạm vào bảng hiện tại của mình quá nhiều, bạn có thể tạo một cột được ghim giả ở phía trước bàn.








aaaaaaa ccccccccccc asdsad asd as ccccccccccc asdsad asd as
cccccccc xxxxxxxxxxxxxxxxxxxx yyyyyyyyyyyyyy zzzzzzzzzzzzz xxxxxxxxxxxxxxxxxxxx yyyyyyyyyyyyyy zzzzzzzzzzzzz
aaaaaaa ccccccccccc asdsad asd as ccccccccccc asdsad asd as
cccccccc xxxxxxxxxxxxxxxxxxxx yyyyyyyyyyyyyy zzzzzzzzzzzzz xxxxxxxxxxxxxxxxxxxx yyyyyyyyyyyyyy zzzzzzzzzzzzz

Ví dụ cho thấy một cách làm điều đó mà không có jsJul 9, 2013 at 20:42

2

Đã trả lời ngày 26 tháng 6 năm 2019 lúc 13:48

.table-fixed-left table,
.table-fixed-right table {
  border-collapse: collapse;
}
.table-fixed-right td,
.table-fixed-right th,
.table-fixed-left td,
.table-fixed-left th {
  border: 1px solid #ddd;
  padding: 5px 5px;
}
.table-fixed-left {
  width: 120px;
  float: left;
  position: fixed;
  overflow-x: scroll;
  white-space: nowrap;
  text-align: left;
  border: 1px solid #ddd;
  z-index: 2;
}
.table-fixed-right {
  width: calc(100% - 145px);
  right: 15px;
  position: fixed;
  overflow-x: scroll;
  border: 1px solid #ddd;
  white-space: nowrap;
}
.table-fixed-right td,
.table-fixed-right th {
  padding: 5px 10px;
}
table tr th:first-child {
  position: sticky;
  inset-inline-start: 0; /* "left" */
}
0

4843 Huy hiệu bạc12 Huy hiệu đồng

Nếu bạn muốn một bảng trong đó chỉ các cột cuộn theo chiều ngang, bạn có thể ____55 cột đầu tiên (và chỉ định chiều rộng của nó một cách rõ ràng), sau đó bọc toàn bộ bảng trong một khối

Number First Name Last Name Employer
1 Mark Ham Micro
2 Jacob Smith Adob Adob Adob AdobAdob Adob Adob Adob Adob
3 Larry Wen Goog Goog Goog GoogGoog Goog Goog Goog Goog Goog
6. Tuy nhiên, đừng bận tâm đến việc thử điều này trong IE7 ...

HTML & CSS có liên quan:1 gold badge25 silver badges40 bronze badges

Vĩ cầmMay 10, 2015 at 20:37

Đã trả lời ngày 21 tháng 8 năm 2009 lúc 15:31prozac

Bạn có thể sử dụng vị trí

Number First Name Last Name Employer
1 Mark Ham Micro
2 Jacob Smith Adob Adob Adob AdobAdob Adob Adob Adob Adob
3 Larry Wen Goog Goog Goog GoogGoog Goog Goog Goog Goog Goog
7. Đây là một mã mẫu. Đây là giải pháp HTML/CSS. Không cần JS.2 silver badges5 bronze badges

0

Mã Codeply: https://www.codeply.com/p/oz4njpvwbo

Ví dụ HTML

table tr th:first-child {
  position: sticky;
  inset-inline-start: 0; /* "left" */
}
1
table tr th:first-child {
  position: sticky;
  inset-inline-start: 0; /* "left" */
}
2

Méo

5048 Huy hiệu bạc19 Huy hiệu đồng8 silver badges19 bronze badges

Đã trả lời ngày 29 tháng 10 năm 2019 lúc 3:45Oct 29, 2019 at 3:45

Kiểu cột bên trái với

.tscroll {
  width: 400px;
  overflow-x: scroll;
  margin-bottom: 10px;
  border: solid black 1px;
}

.tscroll table td:first-child {
  position: sticky;
  left: 0;
  background-color: #ddd;
}

.tscroll td, .tscroll th {
  border-bottom: dashed #888 1px;
}
0. (Có lẽ bạn sẽ muốn sử dụng các kiểu
.tscroll {
  width: 400px;
  overflow-x: scroll;
  margin-bottom: 10px;
  border: solid black 1px;
}

.tscroll table td:first-child {
  position: sticky;
  left: 0;
  background-color: #ddd;
}

.tscroll td, .tscroll th {
  border-bottom: dashed #888 1px;
}
1 và
.tscroll {
  width: 400px;
  overflow-x: scroll;
  margin-bottom: 10px;
  border: solid black 1px;
}

.tscroll table td:first-child {
  position: sticky;
  left: 0;
  background-color: #ddd;
}

.tscroll td, .tscroll th {
  border-bottom: dashed #888 1px;
}
2 để kiểm soát chính xác nơi nó xảy ra.)

Đã trả lời ngày 21 tháng 8 năm 2009 lúc 14:20Aug 21, 2009 at 14:20

Hướng dẫn fixed table header bootstrap codepen - tiêu đề bảng cố định bootstrap codepen

Chaoschaoschaos

120K33 Huy hiệu vàng301 Huy hiệu bạc 308 Huy hiệu đồng33 gold badges301 silver badges308 bronze badges

2

Tôi đã lấy câu trả lời của Earmon Nerbonne và chỉnh sửa nó để làm việc với các bảng lấp đầy toàn bộ chiều rộng.

http://jsfiddle.net/DYgD6/6/

table tr th:first-child {
  position: sticky;
  inset-inline-start: 0; /* "left" */
}
3

Chiều rộng của cột cố định vẫn cần phải là một giá trị đã đặt mặc dù.

Đã trả lời ngày 25 tháng 5 năm 2013 lúc 11:16May 25, 2013 at 11:16

Jonathan.Jonathan.Jonathan.

52.6K50 Huy hiệu vàng182 Huy hiệu bạc284 Huy hiệu đồng50 gold badges182 silver badges284 bronze badges

Nếu bạn đang phát triển một cái gì đó phức tạp hơn và muốn nhiều cột được sửa/bị kẹt ở bên trái, có lẽ bạn sẽ cần một cái gì đó như thế này.

table tr th:first-child {
  position: sticky;
  inset-inline-start: 0; /* "left" */
}
4
table tr th:first-child {
  position: sticky;
  inset-inline-start: 0; /* "left" */
}
5

Đã trả lời ngày 3 tháng 3 năm 2017 lúc 12:30Mar 3, 2017 at 12:30

Kashesandrkashesandrkashesandr

1.51128 huy hiệu bạc35 huy hiệu đồng28 silver badges35 bronze badges

1

Nếu bạn đang ở trong địa ngục WebDevelopper và cần thực hiện công việc này cho IE6, thì đây là mã mẫu tôi đã sử dụng:

table tr th:first-child {
  position: sticky;
  inset-inline-start: 0; /* "left" */
}
6

Điều này có thể chỉ hoạt động cho IE6, vì vậy hãy sử dụng các nhận xét có điều kiện cho CSS.

Hướng dẫn fixed table header bootstrap codepen - tiêu đề bảng cố định bootstrap codepen

Barnee

3.0648 Huy hiệu vàng41 Huy hiệu bạc 50 Huy hiệu Đồng8 gold badges41 silver badges50 bronze badges

Đã trả lời ngày 8 tháng 12 năm 2011 lúc 14:59Dec 8, 2011 at 14:59

Hướng dẫn fixed table header bootstrap codepen - tiêu đề bảng cố định bootstrap codepen

mrmugglesmrmugglesmrmuggles

1.9534 huy hiệu vàng22 Huy hiệu bạc42 Huy hiệu đồng4 gold badges22 silver badges42 bronze badges

Không cần thêm bất kỳ plugin, CSS có thể làm công việc này !!!

Ý tưởng là làm cho vị trí của tất cả các ô đầu tiên trong mỗi cột tuyệt đối và thực hiện chiều rộng được cố định. Bán tại:

table tr th:first-child {
  position: sticky;
  inset-inline-start: 0; /* "left" */
}
7

Điều này ẩn một số phần của một số cột dưới cột thứ nhất, vì vậy thêm một cột thứ hai trống (thêm TD trống thứ hai) có chiều rộng giống như cột thứ nhất.

Tôi đã thử nghiệm và điều này hoạt động trong Chrome và Firefox.

Làn đường

2.6293 huy hiệu vàng24 Huy hiệu bạc38 Huy hiệu đồng3 gold badges24 silver badges38 bronze badges

Đã trả lời ngày 31 tháng 1 năm 2014 lúc 6:56Jan 31, 2014 at 6:56

GuruguruGuru

1.14517 huy hiệu bạc31 huy hiệu đồng17 silver badges31 bronze badges

3

Eamon Nerbonne, tôi đã thay đổi một số CSS trong mã của bạn và bây giờ tốt hơn (thanh cuộn bắt đầu từ hàng đầu tiên)

http://jsfiddle.net/At8L8/

Tôi chỉ thêm hai dòng:

table tr th:first-child {
  position: sticky;
  inset-inline-start: 0; /* "left" */
}
8

Đã trả lời ngày 25 tháng 7 năm 2014 lúc 8:30Jul 25, 2014 at 8:30

1

Dưới đây là một sửa đổi khác của câu trả lời phổ biến nhất, nhưng với việc xử lý độ dài khác nhau của văn bản trong các nhãn cột đầu tiên: http://jsfiddle.net/ozx56n41/

Về cơ bản, tôi đang sử dụng cột thứ hai để tạo chiều cao hàng, như đã được đề cập. Nhưng fiddle của tôi thực sự hoạt động không giống như được đề cập ở trên.

HTML:

table tr th:first-child {
  position: sticky;
  inset-inline-start: 0; /* "left" */
}
9

CSS:

table {
  border-collapse: separate;
  border-spacing: 0;
  border-top: 1px solid grey;
}

td,
th {
  margin: 0;
  border: 1px solid grey;
  white-space: nowrap;
  border-top-width: 0px;
}

div {
  width: 500px;
  overflow-x: scroll;
  margin-left: 5em;
  overflow-y: visible;
  padding: 0;
}

.headcol {
  position: absolute;
  width: 5em;
  left: 0;
  top: auto;
  border-top-width: 1px;
  /*only relevant for first row*/
  margin-top: -1px;
  /*compensate for top border*/
}

.headcol:before {
  content: 'Row ';
}

.long {
  background: yellow;
  letter-spacing: 1em;
}
0

Đã trả lời ngày 6 tháng 6 năm 2017 lúc 3:34Jun 6, 2017 at 3:34

Đối với tôi, đây là người duy nhất hoạt động hoàn hảo (nhờ Paul O'Brien!): Https://codepen.io/paulobrien/pen/gwovzn

Đây là đoạn trích:

table {
  border-collapse: separate;
  border-spacing: 0;
  border-top: 1px solid grey;
}

td,
th {
  margin: 0;
  border: 1px solid grey;
  white-space: nowrap;
  border-top-width: 0px;
}

div {
  width: 500px;
  overflow-x: scroll;
  margin-left: 5em;
  overflow-y: visible;
  padding: 0;
}

.headcol {
  position: absolute;
  width: 5em;
  left: 0;
  top: auto;
  border-top-width: 1px;
  /*only relevant for first row*/
  margin-top: -1px;
  /*compensate for top border*/
}

.headcol:before {
  content: 'Row ';
}

.long {
  background: yellow;
  letter-spacing: 1em;
}
1
table {
  border-collapse: separate;
  border-spacing: 0;
  border-top: 1px solid grey;
}

td,
th {
  margin: 0;
  border: 1px solid grey;
  white-space: nowrap;
  border-top-width: 0px;
}

div {
  width: 500px;
  overflow-x: scroll;
  margin-left: 5em;
  overflow-y: visible;
  padding: 0;
}

.headcol {
  position: absolute;
  width: 5em;
  left: 0;
  top: auto;
  border-top-width: 1px;
  /*only relevant for first row*/
  margin-top: -1px;
  /*compensate for top border*/
}

.headcol:before {
  content: 'Row ';
}

.long {
  background: yellow;
  letter-spacing: 1em;
}
2
table {
  border-collapse: separate;
  border-spacing: 0;
  border-top: 1px solid grey;
}

td,
th {
  margin: 0;
  border: 1px solid grey;
  white-space: nowrap;
  border-top-width: 0px;
}

div {
  width: 500px;
  overflow-x: scroll;
  margin-left: 5em;
  overflow-y: visible;
  padding: 0;
}

.headcol {
  position: absolute;
  width: 5em;
  left: 0;
  top: auto;
  border-top-width: 1px;
  /*only relevant for first row*/
  margin-top: -1px;
  /*compensate for top border*/
}

.headcol:before {
  content: 'Row ';
}

.long {
  background: yellow;
  letter-spacing: 1em;
}
3

Đã trả lời ngày 23 tháng 7 năm 2019 lúc 15:12Jul 23, 2019 at 15:12

Hướng dẫn fixed table header bootstrap codepen - tiêu đề bảng cố định bootstrap codepen

ÁrthurárthurÁrthur

1391 Huy hiệu bạc6 Huy hiệu đồng1 silver badge6 bronze badges

Opera là lỗi cho tất cả các câu trả lời trước đó khi tôi kiểm tra chúng trên máy Mac của mình. Nếu bạn cuộn qua bảng, cột cố định sẽ biến mất sau khi bạn vượt qua cột không trộn đầu tiên. Tôi đã đi trước và viết mã dưới đây. Nó hoạt động trong tất cả các trình duyệt tôi đã cài đặt cục bộ. Tôi không biết làm thế nào IE xử lý nó mặc dù.

Chỉ cần lưu ý rằng nếu bạn có ý định bỏ qua các hàng trong một bảng chứ không phải bảng khác hoặc thay đổi độ cao của các hàng, bạn có thể cần điều chỉnh mã này.

table {
  border-collapse: separate;
  border-spacing: 0;
  border-top: 1px solid grey;
}

td,
th {
  margin: 0;
  border: 1px solid grey;
  white-space: nowrap;
  border-top-width: 0px;
}

div {
  width: 500px;
  overflow-x: scroll;
  margin-left: 5em;
  overflow-y: visible;
  padding: 0;
}

.headcol {
  position: absolute;
  width: 5em;
  left: 0;
  top: auto;
  border-top-width: 1px;
  /*only relevant for first row*/
  margin-top: -1px;
  /*compensate for top border*/
}

.headcol:before {
  content: 'Row ';
}

.long {
  background: yellow;
  letter-spacing: 1em;
}
4

Đã trả lời ngày 19 tháng 6 năm 2013 lúc 22:10Jun 19, 2013 at 22:10

table {
  border-collapse: separate;
  border-spacing: 0;
  border-top: 1px solid grey;
}

td,
th {
  margin: 0;
  border: 1px solid grey;
  white-space: nowrap;
  border-top-width: 0px;
}

div {
  width: 500px;
  overflow-x: scroll;
  margin-left: 5em;
  overflow-y: visible;
  padding: 0;
}

.headcol {
  position: absolute;
  width: 5em;
  left: 0;
  top: auto;
  border-top-width: 1px;
  /*only relevant for first row*/
  margin-top: -1px;
  /*compensate for top border*/
}

.headcol:before {
  content: 'Row ';
}

.long {
  background: yellow;
  letter-spacing: 1em;
}
5

Đã trả lời ngày 19 tháng 3 năm 2014 lúc 14:05Mar 19, 2014 at 14:05

PradeppradepPradep

1.7644 Huy hiệu vàng20 Huy hiệu bạc31 Huy hiệu Đồng4 gold badges20 silver badges31 bronze badges

1

Tôi chỉ làm cho cột dính nhất của một bảng dính.

table {
  border-collapse: separate;
  border-spacing: 0;
  border-top: 1px solid grey;
}

td,
th {
  margin: 0;
  border: 1px solid grey;
  white-space: nowrap;
  border-top-width: 0px;
}

div {
  width: 500px;
  overflow-x: scroll;
  margin-left: 5em;
  overflow-y: visible;
  padding: 0;
}

.headcol {
  position: absolute;
  width: 5em;
  left: 0;
  top: auto;
  border-top-width: 1px;
  /*only relevant for first row*/
  margin-top: -1px;
  /*compensate for top border*/
}

.headcol:before {
  content: 'Row ';
}

.long {
  background: yellow;
  letter-spacing: 1em;
}
6

Tôi tin rằng nếu bạn sẽ làm

.tscroll {
  width: 400px;
  overflow-x: scroll;
  margin-bottom: 10px;
  border: solid black 1px;
}

.tscroll table td:first-child {
  position: sticky;
  left: 0;
  background-color: #ddd;
}

.tscroll td, .tscroll th {
  border-bottom: dashed #888 1px;
}
3, bạn sẽ nhận được kết quả mong muốn.

Đã trả lời ngày 20 tháng 6 năm 2019 lúc 14:49Jun 20, 2019 at 14:49

Hướng dẫn fixed table header bootstrap codepen - tiêu đề bảng cố định bootstrap codepen

1

table {
  border-collapse: separate;
  border-spacing: 0;
  border-top: 1px solid grey;
}

td,
th {
  margin: 0;
  border: 1px solid grey;
  white-space: nowrap;
  border-top-width: 0px;
}

div {
  width: 500px;
  overflow-x: scroll;
  margin-left: 5em;
  overflow-y: visible;
  padding: 0;
}

.headcol {
  position: absolute;
  width: 5em;
  left: 0;
  top: auto;
  border-top-width: 1px;
  /*only relevant for first row*/
  margin-top: -1px;
  /*compensate for top border*/
}

.headcol:before {
  content: 'Row ';
}

.long {
  background: yellow;
  letter-spacing: 1em;
}
7

HTML,

table {
  border-collapse: separate;
  border-spacing: 0;
  border-top: 1px solid grey;
}

td,
th {
  margin: 0;
  border: 1px solid grey;
  white-space: nowrap;
  border-top-width: 0px;
}

div {
  width: 500px;
  overflow-x: scroll;
  margin-left: 5em;
  overflow-y: visible;
  padding: 0;
}

.headcol {
  position: absolute;
  width: 5em;
  left: 0;
  top: auto;
  border-top-width: 1px;
  /*only relevant for first row*/
  margin-top: -1px;
  /*compensate for top border*/
}

.headcol:before {
  content: 'Row ';
}

.long {
  background: yellow;
  letter-spacing: 1em;
}
8

Hướng dẫn video trên YouTube: https://www.youtube.com/watch?v=_DPSEJAKQSE

Ví dụ 1: Chiều rộng và chiều cao cố định

https://adriancs.com/demo/freeze_table_column_row.html

Ví dụ 2: Chiều rộng và chiều cao đáp ứng (được điều chỉnh bằng cách sử dụng chế độ xem)

https://adriancs.com/html-css-js/298/html-table-freeze-row-and-column-with-css/

Giải thích hướng dẫn đầy đủ:

https://adriancs.com/demo/freeze_table_column_row_responsive_viewport.html

Đã trả lời ngày 15 tháng 12 năm 2021 lúc 15:52Dec 15, 2021 at 15:52

mjbmjbmjb

7.3458 Huy hiệu vàng41 Huy hiệu bạc57 Huy hiệu đồng8 gold badges41 silver badges57 bronze badges

Ngoài ra, hãy tạo kiểu cho Tbody với kích thước được xác định trước (ví dụ: thông qua

.tscroll {
  width: 400px;
  overflow-x: scroll;
  margin-bottom: 10px;
  border: solid black 1px;
}

.tscroll table td:first-child {
  position: sticky;
  left: 0;
  background-color: #ddd;
}

.tscroll td, .tscroll th {
  border-bottom: dashed #888 1px;
}
4) và sử dụng
.tscroll {
  width: 400px;
  overflow-x: scroll;
  margin-bottom: 10px;
  border: solid black 1px;
}

.tscroll table td:first-child {
  position: sticky;
  left: 0;
  background-color: #ddd;
}

.tscroll td, .tscroll th {
  border-bottom: dashed #888 1px;
}
5

Sau đó, bạn có thể có một tbody lớn, sẽ cuộn độc lập với phần còn lại của trang.

Đã trả lời ngày 21 tháng 8 năm 2009 lúc 14:33Aug 21, 2009 at 14:33

Eamon Nerbonneamon NerbonneEamon Nerbonne

45,9K19 Huy hiệu vàng95 Huy hiệu bạc165 Huy hiệu Đồng19 gold badges95 silver badges165 bronze badges

1

table {
  border-collapse: separate;
  border-spacing: 0;
  border-top: 1px solid grey;
}

td,
th {
  margin: 0;
  border: 1px solid grey;
  white-space: nowrap;
  border-top-width: 0px;
}

div {
  width: 500px;
  overflow-x: scroll;
  margin-left: 5em;
  overflow-y: visible;
  padding: 0;
}

.headcol {
  position: absolute;
  width: 5em;
  left: 0;
  top: auto;
  border-top-width: 1px;
  /*only relevant for first row*/
  margin-top: -1px;
  /*compensate for top border*/
}

.headcol:before {
  content: 'Row ';
}

.long {
  background: yellow;
  letter-spacing: 1em;
}
9
1 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
2 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
3 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
4 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
5 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
6 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
0
1 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
2 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
3 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
4 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
5 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
6 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
1

Điều này có thể dễ dàng thực hiện với sự trợ giúp của DataTables. Những người mới sử dụng bảng dữ liệu, vui lòng tham khảo https://datatables.net/ .its một plugin và cung cấp nhiều tính năng. cũng đó.

Đã trả lời ngày 25 tháng 4 năm 2018 lúc 12:06Apr 25, 2018 at 12:06

Kirankirankiran

12 huy hiệu đồng2 bronze badges

1

Tôi đã không kiểm tra từng câu trả lời cho câu hỏi này, nhưng sau khi phân tích hầu hết trong số họ, tôi thấy rằng thiết kế không thành công trong trường hợp dữ liệu đa dòng trong các ô hoặc đầu. Tôi đã sử dụng JavaScript để giải quyết điều này. Tôi hy vọng ai đó thấy điều này hữu ích.

https://codepen.io/kushagrarora/pen/zeYaoY

1 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
2 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
3 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
4 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
5 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
6 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
2
1 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
2 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
3 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
4 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
5 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
6 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
3
1 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
2 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
3 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
4 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
5 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
6 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
4

Lưu ý: Div "Container" chỉ để chứng minh rằng mã tương thích với chế độ xem di động.

Đã trả lời ngày 23 tháng 1 năm 2019 lúc 8:04Jan 23, 2019 at 8:04

Hướng dẫn fixed table header bootstrap codepen - tiêu đề bảng cố định bootstrap codepen

Kushagr Arorakushagr AroraKushagr Arora

1.8081 Huy hiệu vàng9 Huy hiệu bạc1 gold badge9 silver badges11 bronze badges

1 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
2 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
3 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
4 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
5 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
6 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
5

Đã trả lời ngày 6 tháng 8 lúc 7:26Aug 6 at 7:26

Hướng dẫn fixed table header bootstrap codepen - tiêu đề bảng cố định bootstrap codepen

M Komaeim KomaeiM Komaei

5.1432 Huy hiệu vàng17 Huy hiệu bạc28 Huy hiệu đồng2 gold badges17 silver badges28 bronze badges

Trong HTML5, bạn có thể sử dụng CSS

.tscroll {
  width: 400px;
  overflow-x: scroll;
  margin-bottom: 10px;
  border: solid black 1px;
}

.tscroll table td:first-child {
  position: sticky;
  left: 0;
  background-color: #ddd;
}

.tscroll td, .tscroll th {
  border-bottom: dashed #888 1px;
}
6.Tuy nhiên, tôi giới thiệu bạn "Vuốt giữa các trang" tắt nếu bạn thực hiện trên Mac.
However, i reccomend you "swipe between pages" turn off If you implement on Mac.

Nhìn vào Codepen mẫu

1 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
2 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
3 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
4 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
5 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
6 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
6
1 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
2 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
3 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
4 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
5 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
6 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
7
1 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
2 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
3 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
4 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
5 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
6 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
8

Đã trả lời ngày 22 tháng 6 năm 2017 lúc 12:32Jun 22, 2017 at 12:32

HajimehajimeHajime

Phù hiệu đồng 12944 bronze badges

1

Nếu bạn không muốn chạm vào bảng hiện tại của mình quá nhiều, bạn có thể tạo một cột được ghim giả ở phía trước bàn.

Ví dụ cho thấy một cách làm điều đó mà không có js

1 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
2 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
3 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
4 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
5 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
6 QWERTYUIOPASDFGHJKLZXCVBNM QWERTYUIOPASDFGHJKLZXCVBNM
9
.view {
  margin: auto;
  width: 600px;
}

.wrapper {
  position: relative;
  overflow: auto;
  border: 1px solid black;
  white-space: nowrap;
}

.sticky-col {
  position: -webkit-sticky;
  position: sticky;
  background-color: white;
}

.first-col {
  width: 100px;
  min-width: 100px;
  max-width: 100px;
  left: 0px;
}

.second-col {
  width: 150px;
  min-width: 150px;
  max-width: 150px;
  left: 100px;
}
0

Đã trả lời ngày 26 tháng 6 năm 2019 lúc 13:48Jun 26, 2019 at 13:48

Hướng dẫn fixed table header bootstrap codepen - tiêu đề bảng cố định bootstrap codepen

m.popovm.popovm.popov

4843 Huy hiệu bạc12 Huy hiệu đồng3 silver badges12 bronze badges