Только CSS фиксированные заголовки таблицы без заголовка таблицы только с td и tr - PullRequest
1 голос
/ 25 сентября 2019

Я пытался создать липкий заголовок таблицы без заголовка таблицы, и только у первого tr будет липкая голова, может ли кто-нибудь помочь только с CSS?Пожалуйста, используйте эту скрипку для исправления, а не таблицу ниже https://jsfiddle.net/x243jqbg/

<table class="table"> 
  <tbody>
    <tr>
      <td>row 1</td>
      <td>row 2</td>
      <td>row 3</td>
      <td>row 4</td>
    </tr>
    <tr>
      <td>1</td>
      <td>2</td>
      <td>3</td>
      <td>4</td>
    </tr>
    <tr>
      <td>1</td>
      <td>2</td>
      <td>3</td>
      <td>4</td>
    </tr>
  </tbody>
</table>

Как показано ниже https://codepen.io/chriscoyier/pen/PrJdxb

Ответы [ 2 ]

1 голос
/ 25 сентября 2019

Вы можете использовать селектор tr:first-child для выбора первой строки.А затем стилизовать его соответственно.

.table {
  position: relative;
}

tr:first-child td {
  top: 0;
  position: sticky;
  background: lightblue;
}
<table class="table">
  <tbody>
    <tr>
      <td>row 1</td>
      <td>row 2</td>
      <td>row 3</td>
      <td>row 4</td>
    </tr>
    <tr>
      <td>1</td>
      <td>2</td>
      <td>3</td>
      <td>4</td>
    </tr>
    <tr>
      <td>1</td>
      <td>2</td>
      <td>3</td>
      <td>4</td>
    </tr>
    <tr>
      <td>1</td>
      <td>2</td>
      <td>3</td>
      <td>4</td>
    </tr>
    <tr>
      <td>1</td>
      <td>2</td>
      <td>3</td>
      <td>4</td>
    </tr>
    <tr>
      <td>1</td>
      <td>2</td>
      <td>3</td>
      <td>4</td>
    </tr>
    <tr>
      <td>1</td>
      <td>2</td>
      <td>3</td>
      <td>4</td>
    </tr>
    <tr>
      <td>1</td>
      <td>2</td>
      <td>3</td>
      <td>4</td>
    </tr>
    <tr>
      <td>1</td>
      <td>2</td>
      <td>3</td>
      <td>4</td>
    </tr>
    <tr>
      <td>1</td>
      <td>2</td>
      <td>3</td>
      <td>4</td>
    </tr>
    <tr>
      <td>1</td>
      <td>2</td>
      <td>3</td>
      <td>4</td>
    </tr>
    <tr>
      <td>1</td>
      <td>2</td>
      <td>3</td>
      <td>4</td>
    </tr>
    <tr>
      <td>1</td>
      <td>2</td>
      <td>3</td>
      <td>4</td>
    </tr>
    <tr>
      <td>1</td>
      <td>2</td>
      <td>3</td>
      <td>4</td>
    </tr>
    <tr>
      <td>1</td>
      <td>2</td>
      <td>3</td>
      <td>4</td>
    </tr>
    <tr>
      <td>1</td>
      <td>2</td>
      <td>3</td>
      <td>4</td>
    </tr>
    <tr>
      <td>1</td>
      <td>2</td>
      <td>3</td>
      <td>4</td>
    </tr>
    <tr>
      <td>1</td>
      <td>2</td>
      <td>3</td>
      <td>4</td>
    </tr>
    <tr>
      <td>1</td>
      <td>2</td>
      <td>3</td>
      <td>4</td>
    </tr>
    <tr>
      <td>1</td>
      <td>2</td>
      <td>3</td>
      <td>4</td>
    </tr>
  </tbody>
</table>
0 голосов
/ 25 сентября 2019

Установите table как position: relative

table {
  text-align: left;
  position: relative;
  border-collapse: collapse; 
}

Затем установите первый ряд как position: sticky

tr:first-child td {
  background: white;
  position: sticky;
  top: 0;
  box-shadow: 0 2px 2px -1px rgba(0, 0, 0, 0.4);
}

Проверьте мой код: https://codepen.io/kenneth-bolico/pen/QWLoNry

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