Это можно сделать с помощью макета сетки .
. Здесь я использую JavaScript для включения и выключения классов, чтобы показать, как стиль может измениться.Тем не менее, вы можете добиться того же эффекта с помощью медиазапросов, не определяя стили span.mobile
и .grid.mobile
, если размер больше указанной точки останова.
Подробнее см. в этой статье информация о том, как создать адаптивную таблицу с использованием сетки.
const elements = document.querySelectorAll('.mobile');
setInterval(() => {
elements.forEach(el => el.classList.toggle('mobile'));
}, 1000);
.grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
border-top: 1px solid black;
border-right: 1px solid black;
}
/* toggle below style with a media query */
.grid.mobile {
grid-template-columns: repeat(3, 1fr);
}
.grid > span {
padding: 4px 4px;
border-left: 1px solid black;
border-bottom: 1px solid black;
}
/* toggle below style with a media query */
span.mobile {
grid-column: 1 /4;
font-weight: bold;
text-align: center;
}
<div class="grid mobile">
<span class="mobile">c1</span>
<span>c2</span>
<span>c3</span>
<span>c4</span>
<span class="mobile">c1</span>
<span>c2</span>
<span>c3</span>
<span>c4</span>
<span class="mobile">c1</span>
<span>c2</span>
<span>c3</span>
<span>c4</span>
</div>