Адаптивная таблица для мобильных устройств на CSS

by Denis Tverdokhlebov

HTML

<table class="monetary">
  <thead>
    <tr>
      <th>Время доставки</th>
      <th>Курьер</th>
      <th>Оплата картой</th>
      <th>Стоимость доставки</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td aria-label="Время доставки">8:00-12:00</td>
      <td aria-label="Курьер">Николай</td>
      <td aria-label="Оплата картой">Нет</td>
      <td aria-label="Стоимость доставки">20 руб.</td>
    </tr>
    <tr>
      <td aria-label="Время доставки">12:00-18:00</td>
      <td aria-label="Курьер">Вадим</td>
      <td aria-label="Оплата картой">Да</td>
      <td aria-label="Стоимость доставки">50 руб.</td>
    </tr>
    <tr>
      <td aria-label="Время доставки">18:00-23:00</td>
      <td aria-label="Курьер">Алексей</td>
      <td aria-label="Оплата картой">Да</td>
      <td aria-label="Стоимость доставки">120 руб.</td>
    </tr>
    <tr>
      <td aria-label="Время доставки">1:00-6:00</td>
      <td aria-label="Курьер">Евгений</td>
      <td aria-label="Оплата картой">Нет</td>
      <td aria-label="Стоимость доставки">90 руб.</td>
    </tr>
  </tbody>
</table>

CSS

table.monetary {
  width: 100%;
  border: 0px;
  border-collapse: collapse;
}

@media screen and (max-width: 800px) {
  table.monetary thead {
    display: none;
  }

  table.monetary tr {
    display: block;
    margin-bottom: 1rem;
    border-bottom: 2px solid #e8e9eb;
  }

  table.monetary td {
    display: block;
    text-align: right;
  }

  table.monetary td:before {
    content: attr(aria-label);
    float: left;
    font-weight: bold;
  }
}