Safari вытесняет липкий заголовок - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть приложение, в котором мне нужны липкие заголовки. Он нормально работает с Chrome и другими браузерами, но Safari - нет, хотя в документации сказано, что должно.

Это код: (вы должны запустить его с Safari, чтобы он не работал)

.container{
    padding: 0rem 1rem 0rem 1rem;
    overflow: scroll;
    table-layout: fixed;
    height:10rem;
    width: 100%;
    background-color:green;
}

.my_table {
    border-collapse: separate;
    border-spacing: 0;
    text-align: center;
    width: 100%;
    margin-bottom: 1rem;
    color: #212529;
}

.my_table thead,
.my_table thead th,
.my_table thead td {
      border-top: 0px;
    position: -webkit-sticky;
    position: sticky;
    top: 0;
    z-index: 4;
    background-color: #fff;
    color: #0062cc;
  
    }
<div class='container'>
  <table class='my_table table'>
    <thead><tr><th><div>Header</div></th></tr></thead>
    <tbody><tr><td>Row</td></tr></tbody>
    <tbody><tr><td>Row</td></tr></tbody>
    <tbody><tr><td>Row</td></tr></tbody>
    <tbody><tr><td>Row</td></tr></tbody>
    <tbody><tr><td>Row</td></tr></tbody>
    <tbody><tr><td>Row</td></tr></tbody>
    <tbody><tr><td>Row</td></tr></tbody>
    <tbody><tr><td>Row</td></tr></tbody>
    <tbody><tr><td>Row</td></tr></tbody>
    <tbody><tr><td>Row</td></tr></tbody>
    <tbody><tr><td>Row</td></tr></tbody>
    <tbody><tr><td>Row</td></tr></tbody>
    <tbody><tr><td>Row</td></tr></tbody>
  </table>
</div>

Как это исправить? Я читал о проблеме, если родитель overflow равен auto, а мой scroll.

1 Ответ

1 голос
/ 17 апреля 2020

Установить липкость только для .my_table thead th для работы в сафари и chrome

.container{
    padding: 0rem 1rem 0rem 1rem;
    overflow: scroll;
    table-layout: fixed;
    height:10rem;
    width: 100%;
    background-color:green;
}

.my_table {
    border-collapse: separate;
    border-spacing: 0;
    text-align: center;
    width: 100%;
    margin-bottom: 1rem;
    color: #212529;
}

.my_table thead th {
      border-top: 0px;
    position: -webkit-sticky;
    position: sticky;
    top: 0;
    z-index: 4;
    background-color: #fff;
    color: #0062cc;
  
    }
<div class='container'>
  <table class='my_table table'>
    <thead><tr><th><div>Header</div></th></tr></thead>
    <tbody><tr><td>Row</td></tr></tbody>
    <tbody><tr><td>Row</td></tr></tbody>
    <tbody><tr><td>Row</td></tr></tbody>
    <tbody><tr><td>Row</td></tr></tbody>
    <tbody><tr><td>Row</td></tr></tbody>
    <tbody><tr><td>Row</td></tr></tbody>
    <tbody><tr><td>Row</td></tr></tbody>
    <tbody><tr><td>Row</td></tr></tbody>
    <tbody><tr><td>Row</td></tr></tbody>
    <tbody><tr><td>Row</td></tr></tbody>
    <tbody><tr><td>Row</td></tr></tbody>
    <tbody><tr><td>Row</td></tr></tbody>
    <tbody><tr><td>Row</td></tr></tbody>
    <tbody><tr><td>Row</td></tr></tbody>
    <tbody><tr><td>Row</td></tr></tbody>
    <tbody><tr><td>Row</td></tr></tbody>
    <tbody><tr><td>Row</td></tr></tbody>
    <tbody><tr><td>Row</td></tr></tbody>
    <tbody><tr><td>Row</td></tr></tbody>
    <tbody><tr><td>Row</td></tr></tbody>
    <tbody><tr><td>Row</td></tr></tbody>
    <tbody><tr><td>Row</td></tr></tbody>
  </table>
</div>
...