«overflow-x: auto» не работает с таблицей в CSS Grid, чтобы сделать ее прокручиваемой для быстрого отклика. Как это исправить? - PullRequest
2 голосов
/ 12 октября 2019

Я создаю тему Wordpress и пытаюсь изменить дизайн таблиц, которые уже находятся в содержимом сайта, на котором я буду устанавливать тему. Все мои изменения в таблице сработали, за исключением добавления 'overflow-x: auto' к его контейнеру div, чтобы сделать таблицу с горизонтальной прокруткой, когда на мобильном телефоне. В настоящее время таблица изменяет свою ширину в зависимости от размера области просмотра, но когда она не может стать меньше, она сохраняет свой размер и делает прокручиваемой всю страницу.

Я посмотрел на множество других вопросов и ответов по stackoverflow, которые похожи на это, но они, похоже, не работают для меня. Я создал контейнер div вокруг таблицы и добавил к нему «overflow-x: auto», но он ничего не делает.

РЕДАКТИРОВАТЬ: Кажется, что это нормально работает в фрагменте кода StackOverflow, но нена моем сайте Wordpress. Это проблема с Wordpress?

РЕДАКТИРОВАТЬ 2: Когда я установил плагин таблицы, он все еще имел ту же проблему. При обращении к создателю плагина они сказали, что проблема в том, что я использую «grid-column» CSS Grid и что родитель таблицы не отвечает. Я не думал, что это было проблемой раньше, поэтому я не включил ее в свой код здесь. Я отредактировал приведенный ниже код, чтобы отразить то, что я использую в CSS Grid, и теперь фрагмент кода StackOverflow отражает, как он не работает.

.table-template {
    display: grid;
    grid-template-columns: 10px 1fr 10px;
    justify-content: center;
    margin: 100px 0;
}

.table-area {
    grid-column: 2 / 3;
}


.table-overflow {
   
    overflow-x: auto;
    
    }

    table {
    border: 1px solid #000;
    border-collapse: collapse;
    width: 100%;
   
    }

    thead {
    background-color: #efc879;
    font-weight: bold;
    }

    td, tr, th {
    border: 1px solid #000;
    }
    th, td {
   
    }
    th {
    font-weight: bold;
    }
    tr:nth-child(odd) {
    background-color: #ffffff;
    }

    tr:nth-child(even) {
    background-color: #ececec;
    }

    td {
    padding: 5px;
    }
<main class="table-template">
   
   <section class="table-area">
      <div class="table-overflow">
      <table>
        <tbody>
         <tr>
           <td></td>
           <td>SF</td>
           <td>CS</td>
           <td>NM</td>
           <td>JC</td>
           <td>JH</td>
           <td>MT</td>
           <td>KF</td>
           <td>TG</td>
           <td>TOTAL</td>
        </tr>
        <tr>
           <td>Person</td>
           <td style="background-position: 0% 50%; background-color: black;">XXX</td>
           <td align="center">0</td>
           <td align="center">0</td>
           <td align="center">0(d)</td>
           <td align="center">0(d)</td>
           <td align="center">0(d)</td>
           <td align="center">0(d)</td>
           <td align="center">1</td>
           <td align="center">1</td>
        </tr>
        <tr>
           <td>Person</td>
           <td align="center">1</td>
           <td style="background-position: 0% 50%; background-color: black;">XXX</td>
           <td align="center">1</td>
           <td align="center">1</td>
           <td align="center">1</td>
           <td align="center">0</td>
           <td align="center">0</td>
           <td align="center">1</td>
           <td align="center">5</td>
        </tr>
        <tr>
          <td>Person</td>
          <td align="center">1</td>
          <td align="center">0</td>
          <td style="background-position: 0% 50%; background-color: black;">XXX</td>
          <td align="center">0(d)</td>
          <td align="center">0</td>
          <td align="center">0</td>
          <td align="center">1</td>
          <td align="center">1</td>
          <td align="center">3</td>
      </tr>
      <tr>
          <td>Person</td>
          <td align="center">0.5(a)</td>
          <td align="center">0</td>
          <td align="center">0(d)</td>
          <td style="background-position: 0% 50%; background-color: black;">XXX</td>
          <td align="center">0</td>
          <td align="center">1</td>
          <td align="center">0</td>
          <td align="center">0</td>
          <td align="center">1.5</td>
      </tr>
      <tr>
          <td>Person</td>
          <td align="center">0.5(a)</td>
          <td align="center">0</td>
          <td align="center">1</td>
          <td align="center">1</td>
          <td style="background-position: 0% 50%; background-color: black;">XXX</td>
          <td align="center">1</td>
          <td align="center">1</td>
          <td align="center">1</td>
          <td align="center">5.5</td>
      </tr>
      <tr>
          <td>Person</td>
          <td align="center">0.5(a)</td>
          <td align="center">1</td>
          <td align="center">1</td>
          <td align="center">0</td>
          <td align="center">0</td>
          <td style="background-position: 0% 50%; background-color: black;">XXX</td>
          <td align="center">0</td>
          <td align="center">0</td>
          <td align="center">2.5</td>
      </tr>
      <tr>
          <td>Person</td>
          <td align="center">0.5(a)</td>
          <td align="center">1</td>
          <td align="center">0</td>
          <td align="center">1</td>
          <td align="center">0</td>
          <td align="center">1</td>
          <td style="background-position: 0% 50%; background-color: black;">XXX</td>
          <td align="center">0</td>
          <td align="center">3.5</td>
      </tr>
      <tr>
          <td>Person</td>
          <td align="center">0</td>
          <td align="center">0</td>
          <td align="center">0</td>
          <td align="center">1</td>
          <td align="center">0</td>
          <td align="center">1</td>
          <td align="center">1</td>
          <td style="background-position: 0% 50%; background-color: black;">XXX</td>
          <td align="center">3</td>
       </tr>
      </tbody>
     </table>
    </div>
   </section>
 </main>

В настоящее время таблица изменяет свою ширину в зависимости от размера области просмотра, но когда она не может быть меньше, она сохраняет свой размер и делает прокручиваемую всю страницу.

1 Ответ

0 голосов
/ 14 октября 2019

Вы можете использовать этот код

<!doctype html>
<html lang="en">
<head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
    <title>Hello, world!</title>
    <style type="text/css">
        html, body {
            margin: 0px;
        }
        table {
            border: 1px solid #000;
            border-collapse: collapse;
            width: 100%;
            border-spacing: 0;
        }
        thead {
            background-color: #efc879;
            font-weight: bold;
        }
        td,
        tr,
        th {
            border: 1px solid #000;
        }
        th,
        td {
            text-align: left;
            padding: 8px;
        }
        th {
            font-weight: bold;
        }
        tr:nth-child(odd) {
            background-color: #ffffff;
        }
        tr:nth-child(even) {
            background-color: #ececec;
        }
        td {
            padding: 5px;
        }
    </style>
</head>
<body>
    <div class="container">
        <div style="overflow-x:auto;">
            <table>
                <tbody>
                    <tr>
                        <td></td>
                        <td>SF</td>
                        <td>CS</td>
                        <td>NM</td>
                        <td>JC</td>
                        <td>JH</td>
                        <td>MT</td>
                        <td>KF</td>
                        <td>TG</td>
                        <td>TOTAL</td>
                    </tr>
                    <tr>
                        <td>Person</td>
                        <td style="background-position: 0% 50%; background-color: black;">XXX</td>
                        <td align="center">0</td>
                        <td align="center">0</td>
                        <td align="center">0(d)</td>
                        <td align="center">0(d)</td>
                        <td align="center">0(d)</td>
                        <td align="center">0(d)</td>
                        <td align="center">1</td>
                        <td align="center">1</td>
                    </tr>
                    <tr>
                        <td>Person</td>
                        <td align="center">1</td>
                        <td style="background-position: 0% 50%; background-color: black;">XXX</td>
                        <td align="center">1</td>
                        <td align="center">1</td>
                        <td align="center">1</td>
                        <td align="center">0</td>
                        <td align="center">0</td>
                        <td align="center">1</td>
                        <td align="center">5</td>
                    </tr>
                    <tr>
                        <td>Person</td>
                        <td align="center">1</td>
                        <td align="center">0</td>
                        <td style="background-position: 0% 50%; background-color: black;">XXX</td>
                        <td align="center">0(d)</td>
                        <td align="center">0</td>
                        <td align="center">0</td>
                        <td align="center">1</td>
                        <td align="center">1</td>
                        <td align="center">3</td>
                    </tr>
                    <tr>
                        <td>Person</td>
                        <td align="center">0.5(a)</td>
                        <td align="center">0</td>
                        <td align="center">0(d)</td>
                        <td style="background-position: 0% 50%; background-color: black;">XXX</td>
                        <td align="center">0</td>
                        <td align="center">1</td>
                        <td align="center">0</td>
                        <td align="center">0</td>
                        <td align="center">1.5</td>
                    </tr>
                    <tr>
                        <td>Person</td>
                        <td align="center">0.5(a)</td>
                        <td align="center">0</td>
                        <td align="center">1</td>
                        <td align="center">1</td>
                        <td style="background-position: 0% 50%; background-color: black;">XXX</td>
                        <td align="center">1</td>
                        <td align="center">1</td>
                        <td align="center">1</td>
                        <td align="center">5.5</td>
                    </tr>
                    <tr>
                        <td>Person</td>
                        <td align="center">0.5(a)</td>
                        <td align="center">1</td>
                        <td align="center">1</td>
                        <td align="center">0</td>
                        <td align="center">0</td>
                        <td style="background-position: 0% 50%; background-color: black;">XXX</td>
                        <td align="center">0</td>
                        <td align="center">0</td>
                        <td align="center">2.5</td>
                    </tr>
                    <tr>
                        <td>Person</td>
                        <td align="center">0.5(a)</td>
                        <td align="center">1</td>
                        <td align="center">0</td>
                        <td align="center">1</td>
                        <td align="center">0</td>
                        <td align="center">1</td>
                        <td style="background-position: 0% 50%; background-color: black;">XXX</td>
                        <td align="center">0</td>
                        <td align="center">3.5</td>
                    </tr>
                    <tr>
                        <td>Person</td>
                        <td align="center">0</td>
                        <td align="center">0</td>
                        <td align="center">0</td>
                        <td align="center">1</td>
                        <td align="center">0</td>
                        <td align="center">1</td>
                        <td align="center">1</td>
                        <td style="background-position: 0% 50%; background-color: black;">XXX</td>
                        <td align="center">3</td>
                    </tr>
                </tbody>
            </table>
        </div>
    </div>
    <!-- Optional JavaScript -->
    <!-- jQuery first, then Popper.js, then Bootstrap JS -->
    <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
</body>
</html>
...