Flex-table
Table made by flex with different column width
by artem_bodnia
HTML
<ul class="table first">
<li class="row">
<div class="cell">1</div>
<div class="cell">2</div>
<div class="cell">3adfadsfadsfasdfasdfadsfadsdsfasdfadsfasdfasdffasdfasdf</div>
<div class="cell">4</div>
<div class="cell">5</div>
<div class="cell">6</div>
<div class="cell">7</div>
<div class="cell">8</div>
</li>
<li class="row">
<div class="cell">1</div>
<div class="cell">2</div>
<div class="cell">3</div>
<div class="cell">4</div>
<div class="cell">5</div>
<div class="cell">6</div>
<div class="cell">7</div>
<div class="cell">8</div>
</li>
<li class="row">
<div class="cell">1</div>
<div class="cell">2</div>
<div class="cell">3</div>
<div class="cell">4</div>
<div class="cell">5</div>
<div class="cell">6</div>
<div class="cell">7</div>
<div class="cell">8</div>
</li>
<li class="row">
<div class="cell">1</div>
<div class="cell">2</div>
<div class="cell">3</div>
<div class="cell">4</div>
<div class="cell">5</div>
<div class="cell">6</div>
<div class="cell">7</div>
<div class="cell">8</div>
</li>
<li class="row">
<div class="cell">1</div>
<div class="cell">2</div>
<div class="cell">3</div>
<div class="cell">4</div>
<div class="cell">5</div>
<div class="cell">6</div>
<div class="cell">7</div>
<div class="cell">8</div>
</li>
</ul>
<br>
<ul class="table second">
<li class="row">
<div class="cell">1</div>
<div class="cell">2</div>
<div class="cell">3</div>
<div class="cell">4</div>
<div class="cell">5</div>
<div class="cell">6</div>
<div class="cell">7</div>
<div class="cell">8</div>
</li>
<li class="row">
<div class="cell">1</div>
<div class="cell">2</div>
<div class="cell">3adfadsfadsfasdfasdfadsfadsdsfasdfadsfasdfasdffasdfasdf</div>
<div class="cell">4</div>
<div class="cell">5</div>
<div class="cell">6</div>
<div...
SCSS
.table {
display: flex;
flex-flow: column nowrap;
flex: auto;
margin: 0 auto;
padding: 0;
border: 1px solid black;
margin-bottom: 50px;
max-width: 500px;
}
.row {
display: flex;
flex-flow: row;
flex-wrap: wrap;
align-items: end;
justify-content: center;
padding: 15px 10px;
box-sizing: border-box;
width: 100%;
text-align: center;
}
.first .cell, .second .cell {
display: flex;
justify-content: center;
align-items: center;
flex-flow: row;
flex-wrap: wrap;
word-break: break-word;
text-overflow: ellipsis;
white-space: nowrap;
height: 56px;
padding: 0px 5px;
border: 1px solid black;
&:nth-child(1) {
flex-grow: 6;
}
&:nth-child(2) {
flex-grow: 5;
}
&:nth-child(3) {
flex-grow: 33;
white-space: normal;
}
&:nth-child(4) {
flex-grow: 13;
}
&:nth-child(5) {
flex-grow: 13;
}
&:nth-child(6) {
flex-grow: 8;
}
&:nth-child(7) {
flex-grow: 8;
}
&:nth-child(8) {
flex-grow: 8;
}
}
.first .cell {
flex-basis: 0;
}
.second .cell {
flex-basis: auto;
}