Запретить закрепление заголовка таблицы вверх при прокрутке - PullRequest
0 голосов
/ 09 июля 2020

Сейчас у меня есть таблица, которая поддерживает прокрутку при переполнении элементов. Мне нужно, чтобы заголовок был стабильным при прокрутке пользователя, однако по какой-то причине заголовок перемещается вверх примерно на 10px, прежде чем застрять.

Демонстрация GIF

HTML

<div className='tasks-container'>
    <table className='task-table'>
        <tbody>
            <tr className='tasks-header'>
                <th>Store</th>
                <th>Product</th>
                <th>Size</th>
                <th>Profile</th>
                <th>Proxies</th>
                <th>Status</th>
                <th>Actions</th>
             </tr>
             {this.renderTaskData()}
        </tbody>
   </table>
</div>

this.renderTaskData() просто отображает элементы таблицы, используя td внутри tr через ReactJS.

SASS

@import '../../styles/fonts.scss';
@import '../../styles/colors.scss';

.tasks-container {
  height: 80vh;
}

.task-table {
  margin-left: 85px;
  margin-top: 30px;
  width: calc(100% - 107px);
  user-select: none;
  border-spacing: 0 10px;

  display: block;
  overflow-y: auto;
  overflow-x: hidden;
  height: 100%;

  tbody {
    display: table;
    width: 100%;
  }

  &::-webkit-scrollbar {
    display: none;
  }

  -ms-overflow-style: none;
}

.tasks-header {
  font-family: 'Muli', sans-serif;
  font-size: 12px;
  font-weight: $extra-bold;
  color: $text-light;
  letter-spacing: 1px;
  text-align: left;

  th {
    padding-left: 36px;
    position: -webkit-sticky;
    position: sticky;
    top: 0;
    z-index: 5;
    background-color: $background;
    padding-bottom: 10px;
  }
}

td {
  color: $text-grey;
  font-family: 'Muli', sans-serif;
  font-size: 12px;
  font-weight: $extra-bold;
  letter-spacing: 1px;
  text-align: left;
  background-color: $input-box;
  height: 45px;
  padding-left: 36px;
  white-space: nowrap;

  &:first-child {
    border-top-left-radius: 7px;
    border-bottom-left-radius: 7px;
  }

  &:last-child {
    border-top-right-radius: 7px;
    border-bottom-right-radius: 7px;
  }

  p {
    display: inline-block;
    margin-left: 10px;
  }
}

.task-container {
  transition: 0.3s;

  &:hover {
    filter: brightness(115%);
  }
}

.Idle {
  div {
    background-color: $status-yellow;
    height: 8px;
    width: 8px;
    border-radius: 50%;
    display: inline-block;
  }

  p {
    color: $status-yellow;
  }
}

Я считаю, что проблема заключается в border-spacing в классе task-table, потому что, когда я удаляю его и добавляю border-spacing: 0 или border-collapse: collapse, строки теряют интервал, но проблема с прокруткой решено.

Как я могу это исправить, сохранив при этом интервал границ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...