Я делаю эту таблицу как макет с divs и flex, так как некоторые стили стали более сложными, мне пришлось оставить «настоящие» <table>
и сделать это следующим образом. С этим вне пути.
Одна из моих основных проблем заключается в том, что table-card
, table-card__head
или table-card__body
не становятся полной шириной для переноса строк. Я мой пример, я сделал один из рядов, чтобы иметь больше ячеек. На данный момент, чтобы быть совершенно честным, я понятия не имею, почему это так. Я был бы очень признателен за указатели.
Я тоже уроню скрипку на всякий случай
* {
box-sizing: border-box;
}
/* plage specific */
.table-card__cell-width .table-card__head-cell,
.table-card__cell-width .table-card__cell {
width: 11.25rem;
}
/* shared styles */
.table-card {
position: relative;
}
.table-card__head {
position: -webkit-sticky;
position: sticky;
top: 0;
z-index: 2;
}
.table-card__head-row {
display: flex;
flex-direction: row;
flex-wrap: nowrap;
background-color: coral;
}
.table-card__head-cell {
border-right: 1px solid aqua;
height: 2rem;
line-height: 2rem;
text-align: center;
}
.table-card__body {
flex: 1 0 100%;
}
.table-card__row {
flex-shrink: 0;
display: flex;
flex-wrap: nowrap;
background-color: white;
border-bottom: 1px solid #cccccc;
}
.table-card__row:nth-child(odd) {
background-color: #ededed;
}
.table-card__cell {
display: flex;
flex-shrink: 0;
justify-content: center;
align-items: center;
height: 4rem;
border-right: 1px solid #cccccc;
}
<div class="table-card">
<div class="table-card__head table-card__cell-width">
<div class="table-card__head-row">
<div class="table-card__head-cell">Head 1</div>
<div class="table-card__head-cell">Head 2</div>
<div class="table-card__head-cell">Head 3</div>
<div class="table-card__head-cell">Head 4</div>
</div>
</div>
<div class="table-card__body table-card__cell-width">
<div class="table-card__row">
<div class="table-card__cell">Value 1</div>
<div class="table-card__cell">Value 2</div>
<div class="table-card__cell">Value 3</div>
<div class="table-card__cell">Value 4</div>
<div class="table-card__cell">Value 1</div>
<div class="table-card__cell">Value 2</div>
<div class="table-card__cell">Value 3</div>
<div class="table-card__cell">Value 4</div>
<div class="table-card__cell">Value 1</div>
<div class="table-card__cell">Value 2</div>
<div class="table-card__cell">Value 3</div>
<div class="table-card__cell">Value 4</div>
</div>
<div class="table-card__row">
<div class="table-card__cell">Value 1</div>
<div class="table-card__cell">Value 2</div>
<div class="table-card__cell">Value 3</div>
<div class="table-card__cell">Value 4</div>
</div>
<div class="table-card__row">
<div class="table-card__cell">Value 1</div>
<div class="table-card__cell">Value 2</div>
<div class="table-card__cell">Value 3</div>
<div class="table-card__cell">Value 4</div>
</div>
<div class="table-card__row">
<div class="table-card__cell">Value 1</div>
<div class="table-card__cell">Value 2</div>
<div class="table-card__cell">Value 3</div>
<div class="table-card__cell">Value 4</div>
</div>
<div class="table-card__row">
<div class="table-card__cell">Value 1</div>
<div class="table-card__cell">Value 2</div>
<div class="table-card__cell">Value 3</div>
<div class="table-card__cell">Value 4</div>
</div>
<div class="table-card__row">
<div class="table-card__cell">Value 1</div>
<div class="table-card__cell">Value 2</div>
<div class="table-card__cell">Value 3</div>
<div class="table-card__cell">Value 4</div>
</div>
<div class="table-card__row">
<div class="table-card__cell">Value 1</div>
<div class="table-card__cell">Value 2</div>
<div class="table-card__cell">Value 3</div>
<div class="table-card__cell">Value 4</div>
</div>
<div class="table-card__row">
<div class="table-card__cell">Value 1</div>
<div class="table-card__cell">Value 2</div>
<div class="table-card__cell">Value 3</div>
<div class="table-card__cell">Value 4</div>
</div>
<div class="table-card__row">
<div class="table-card__cell">Value 1</div>
<div class="table-card__cell">Value 2</div>
<div class="table-card__cell">Value 3</div>
<div class="table-card__cell">Value 4</div>
</div>
<div class="table-card__row">
<div class="table-card__cell">Value 1</div>
<div class="table-card__cell">Value 2</div>
<div class="table-card__cell">Value 3</div>
<div class="table-card__cell">Value 4</div>
</div>
<div class="table-card__row">
<div class="table-card__cell">Value 1</div>
<div class="table-card__cell">Value 2</div>
<div class="table-card__cell">Value 3</div>
<div class="table-card__cell">Value 4</div>
</div>
<div class="table-card__row">
<div class="table-card__cell">Value 1</div>
<div class="table-card__cell">Value 2</div>
<div class="table-card__cell">Value 3</div>
<div class="table-card__cell">Value 4</div>
</div>
<div class="table-card__row">
<div class="table-card__cell">Value 1</div>
<div class="table-card__cell">Value 2</div>
<div class="table-card__cell">Value 3</div>
<div class="table-card__cell">Value 4</div>
</div>
<div class="table-card__row">
<div class="table-card__cell">Value 1</div>
<div class="table-card__cell">Value 2</div>
<div class="table-card__cell">Value 3</div>
<div class="table-card__cell">Value 4</div>
</div>
<div class="table-card__row">
<div class="table-card__cell">Value 1</div>
<div class="table-card__cell">Value 2</div>
<div class="table-card__cell">Value 3</div>
<div class="table-card__cell">Value 4</div>
</div>
<div class="table-card__row">
<div class="table-card__cell">Value 1</div>
<div class="table-card__cell">Value 2</div>
<div class="table-card__cell">Value 3</div>
<div class="table-card__cell">Value 4</div>
</div>
<div class="table-card__row">
<div class="table-card__cell">Value 1</div>
<div class="table-card__cell">Value 2</div>
<div class="table-card__cell">Value 3</div>
<div class="table-card__cell">Value 4</div>
</div>
<div class="table-card__row">
<div class="table-card__cell">Value 1</div>
<div class="table-card__cell">Value 2</div>
<div class="table-card__cell">Value 3</div>
<div class="table-card__cell">Value 4</div>
</div>
<div class="table-card__row">
<div class="table-card__cell">Value 1</div>
<div class="table-card__cell">Value 2</div>
<div class="table-card__cell">Value 3</div>
<div class="table-card__cell">Value 4</div>
</div>
<div class="table-card__row">
<div class="table-card__cell">Value 1</div>
<div class="table-card__cell">Value 2</div>
<div class="table-card__cell">Value 3</div>
<div class="table-card__cell">Value 4</div>
</div>
<div class="table-card__row">
<div class="table-card__cell">Value 1</div>
<div class="table-card__cell">Value 2</div>
<div class="table-card__cell">Value 3</div>
<div class="table-card__cell">Value 4</div>
</div>
<div class="table-card__row">
<div class="table-card__cell">Value 1</div>
<div class="table-card__cell">Value 2</div>
<div class="table-card__cell">Value 3</div>
<div class="table-card__cell">Value 4</div>
</div>
<div class="table-card__row">
<div class="table-card__cell">Value 1</div>
<div class="table-card__cell">Value 2</div>
<div class="table-card__cell">Value 3</div>
<div class="table-card__cell">Value 4</div>
</div>
<div class="table-card__row">
<div class="table-card__cell">Value 1</div>
<div class="table-card__cell">Value 2</div>
<div class="table-card__cell">Value 3</div>
<div class="table-card__cell">Value 4</div>
</div>
<div class="table-card__row">
<div class="table-card__cell">Value 1</div>
<div class="table-card__cell">Value 2</div>
<div class="table-card__cell">Value 3</div>
<div class="table-card__cell">Value 4</div>
</div>
<div class="table-card__row">
<div class="table-card__cell">Value 1</div>
<div class="table-card__cell">Value 2</div>
<div class="table-card__cell">Value 3</div>
<div class="table-card__cell">Value 4</div>
</div>
<div class="table-card__row">
<div class="table-card__cell">Value 1</div>
<div class="table-card__cell">Value 2</div>
<div class="table-card__cell">Value 3</div>
<div class="table-card__cell">Value 4</div>
</div>
<div class="table-card__row">
<div class="table-card__cell">Value 1</div>
<div class="table-card__cell">Value 2</div>
<div class="table-card__cell">Value 3</div>
<div class="table-card__cell">Value 4</div>
</div>
<div class="table-card__row">
<div class="table-card__cell">Value 1</div>
<div class="table-card__cell">Value 2</div>
<div class="table-card__cell">Value 3</div>
<div class="table-card__cell">Value 4</div>
</div>
<div class="table-card__row">
<div class="table-card__cell">Value 1</div>
<div class="table-card__cell">Value 2</div>
<div class="table-card__cell">Value 3</div>
<div class="table-card__cell">Value 4</div>
</div>
<div class="table-card__row">
<div class="table-card__cell">Value 1</div>
<div class="table-card__cell">Value 2</div>
<div class="table-card__cell">Value 3</div>
<div class="table-card__cell">Value 4</div>
</div>
<div class="table-card__row">
<div class="table-card__cell">Value 1</div>
<div class="table-card__cell">Value 2</div>
<div class="table-card__cell">Value 3</div>
<div class="table-card__cell">Value 4</div>
</div>
<div class="table-card__row">
<div class="table-card__cell">Value 1</div>
<div class="table-card__cell">Value 2</div>
<div class="table-card__cell">Value 3</div>
<div class="table-card__cell">Value 4</div>
</div>
</div>
</div>