Как исправить заголовки моей таблицы, чтобы они не прокручивались

#css #reactjs #bootstrap-4 #fixed-header-tables

#css #reactjs #bootstrap-4 #исправленный заголовок-таблицы

Вопрос:

Я пытаюсь исправить заголовок моей таблицы так, чтобы он не прокручивался, а оставался зафиксированным на месте.

Я просмотрел несколько старых потоков SO, чтобы попытаться найти решение для исправления заголовка прокручиваемой таблицы. Я довольно новичок в bootstrap и React, и я считаю, что я близок к этому. Я задаю этот вопрос здесь, чтобы найти ответ, специфичный для моего кода.

моя таблица в компоненте react

     <div>
      <div className="tablediv">
      <div className="table-wrapper-scroll-y my-custom-scrollbar">
        <table className="table table-hover table-striped table-light">
          <thead>
          <tr>
            <th scope="col">#</th>
            <th scope="col">Date</th>
            <th scope="col">Value: USD</th>
          </tr>
        </thead>
        <tbody>
          {priceAndDateArray.slice(0).reverse().map((item, i) => (
              <tr key={i}>
                <th scope="row">{i 1}</th>
                <td>{item.date}</td>
                <td>{item.price}</td>
              </tr>
          ))}
        </tbody>
      </table>
      </div>
      </div>
    </div>
  

мой css, относящийся к таблице

 .tablediv {
  flex-wrap: wrap;
  align-content: space-evenly;
  padding: 5%;
  justify-content: center
}

.tablediv tr {
  cursor: pointer;
  cursor: hand;
}

.my-custom-scrollbar {
  position: relative;
  height: 400px;
  overflow: auto;
}
.table-wrapper-scroll-y {
  display: block;
}
  

Ожидаемый результат — это то, что верхний заголовок таблицы (#, дата, значение: USD) будет исправлен на месте. Фактические результаты заключаются в том, что они прокручиваются вместе с таблицей.

Ответ №1:

Попробуйте добавить это.

 .tablediv {
    flex-wrap: wrap;
    align-content: space-evenly;
    padding: 5%;
    justify-content: center;
    position: fixed;
    top: 0;
}
  

Комментарии:

1. К сожалению, это не сработало, хотя и имело довольно забавный эффект.

Ответ №2:

вы хотите, css position:sticky чтобы заголовок сохранялся до тех пор, пока содержимое не будет прокручиваться мимо. Вот информация и примеры

Грубо говоря, ваш css будет выглядеть следующим образом

 thead {
 position: sticky;
 top:0; //or whatever offset you want
 z-index: 100; // make sure it stacks higher than other stuff on the page
}