На чистом CSS
Рассмотрим как быстро и легко адаптировать таблицу (<table>) для мобильных устройств.
Дана таблица с <thead>

<table class="srv-table-wrap">
<thead>
<tr>
<th>Параметры</th>
<th>Wildberries</th>
<th>Ozon</th>
<th>Яндекс.Маркет</th>
<th>AliExpress</th>
</tr>
</thead>
<tbody>
<tr>
<td data-content="Параметры">Аудитория</td>
<td data-content="Wildberries">Текст текст текст текст текст текст текст текст текст текст</td>
<td data-content="Ozon">Текст текст текст текст текст текст текст текст текст текст</td>
<td data-content="Яндекс.Маркет">Текст текст текст текст текст текст текст текст текст текст</td>
<td data-content="AliExpress">Текст текст текст текст текст текст текст текст текст текст</td>
</tr>
<tr>
<td data-content="Параметры">География продаж</td>
<td data-content="Wildberries">Текст текст текст текст текст текст текст текст текст текст</td>
<td data-content="Ozon">Текст текст текст текст текст текст текст текст текст текст</td>
<td data-content="Яндекс.Маркет">Текст текст текст текст текст текст текст текст текст текст</td>
<td data-content="AliExpress">Текст текст текст текст текст текст текст текст текст текст</td>
</tr>
<tr>
<td data-content="Параметры">Конкуренция</td>
<td data-content="Wildberries">Текст текст текст текст текст текст текст текст текст текст</td>
<td data-content="Ozon">Текст текст текст текст текст текст текст текст текст текст</td>
<td data-content="Яндекс.Маркет">Текст текст текст текст текст текст текст текст текст текст</td>
<td data-content="AliExpress">Текст текст текст текст текст текст текст текст текст текст</td>
</tr>
<tr>
<td data-content="Параметры">Складское хранение</td>
<td data-content="Wildberries">Текст текст текст текст текст текст текст текст текст текст</td>
<td data-content="Ozon">Текст текст текст текст текст текст текст текст текст текст</td>
<td data-content="Яндекс.Маркет">Текст текст текст текст текст текст текст текст текст текст</td>
<td data-content="AliExpress">Текст текст текст текст текст текст текст текст текст текст</td>
</tr>
<tr>
<td data-content="Параметры">Комиссия и условия оплаты</td>
<td data-content="Wildberries">Текст текст текст текст текст текст текст текст текст текст</td>
<td data-content="Ozon">Текст текст текст текст текст текст текст текст текст текст</td>
<td data-content="Яндекс.Маркет">Текст текст текст текст текст текст текст текст текст текст</td>
<td data-content="AliExpress">Текст текст текст текст текст текст текст текст текст текст</td>
</tr>
<tr>
<td data-content="Параметры">Юридический статус селлеров</td>
<td data-content="Wildberries">Текст текст текст текст текст текст текст текст текст текст</td>
<td data-content="Ozon">Текст текст текст текст текст текст текст текст текст текст</td>
<td data-content="Яндекс.Маркет">Текст текст текст текст текст текст текст текст текст текст</td>
<td data-content="AliExpress">Текст текст текст текст текст текст текст текст текст текст</td>
</tr>
</tbody>
</table>
Если у вас есть возможность на стороне backend'a добавить заголовки в data-content="" - вам не нужен JS скрипт, достаточно будет только CSS
С помощью jQuery
Если же возможности заполнить дата атрибут со стороны бека у вас нету, тогда вам понадобится скрипт который это сделает
var thCollection = $('.srv-table-wrap thead th')
thCollection.each(function(index) {
var thContent = $(this).text(),
tdCollection = $('.srv-table-wrap tbody td:nth-child(' + (index + 1) + ')')
tdCollection.each(function() {
$(this).attr('data-content', thContent)
})
})
CSS для обоих случаев будет следующим (отредактируйте под себя, основная здесь суть это content: attr(data-content) ": "; в псевдоэлементе
.srv-table-wrap{
border: 1px solid #CDD8FB;
border-radius: 20px;
overflow: hidden;
border-spacing: 0;
margin: 10px 0;
width: 100%;
}
.srv-table-wrap thead{
background: #EFF2F9;
}
.srv-table-wrap thead th{
padding: 40px 40px 20px 40px;
font-weight: 700;
font-size: 16px;
line-height: 110%;
text-align: left;
color: #000000;
border: 0.5px solid #CDD8FB;
}
.srv-table-wrap tbody tr{
transition: .3s linear all;
}
.srv-table-wrap tbody td{
padding: 30px 40px;
font-weight: 400;
font-size: 14px;
line-height: 110%;
color: #000000;
border: 0.5px solid #CDD8FB;
text-align: left;
}
.srv-table-wrap tbody tr:nth-child(even){
background: rgba(239, 242, 249, 0.5);
}
.srv-table-wrap tbody tr:hover{
background: #EFF2F9;
}
.srv-table-wrap tbody tr td:first-child{
min-width: 210px;
}
@media (max-width: 1024px){
.srv-table-wrap thead{display: none;}
.srv-table-wrap tbody tr,
.srv-table-wrap tbody tr:hover{
background: #fff !important;
}
.srv-table-wrap tbody tr{
border-top: 1px solid #000;
border-bottom: 1px solid #000;
}
.srv-table-wrap tbody td{
display: grid;
gap: 5px;
grid-template-columns: minmax(115px, 25%) auto;
padding: 5px 20px;
border: none;
}
.srv-table-wrap tbody td::before{
content: attr(data-content) ": ";
font-weight: 700;
text-transform: capitalize;
display: block;
width: 100%;
word-break: break-all;
}
.srv-table-wrap tbody td:first-child{
padding-top: 20px;
}
.srv-table-wrap tbody td:last-child{
padding-bottom: 20px;
border-bottom: 1px solid #CDD8FB;
}
.srv-table-wrap tbody tr:last-child td:last-child{
border-bottom: none;
}
}
Результат который должен получится

Если вы замените grid в .srv-table-wrap tbody td на block, то результат будет следующим
