Как исправить отображение border-bottom в таблице с overflow-x: auto?

Делаю таблицу на flexbox, столкнулся с проблемой отображения бордера.

Vue.config.devtools = false
Vue.config.productionTip = false
const vm = new Vue({
  el: "#table"
})
.table {
  display: flex;
  flex-flow: column nowrap;
  overflow-x: auto;
}

.row {
  width: 100%;
  display: flex;
  flex-flow: row nowrap;
  align-items: flex-start;
  border-bottom: 1px solid #d0d0d0;
}

.column {
  flex: 1 0 150px;
  max-width: 150px;
}

.cell {
  padding: 20px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div class="table" id="table">
  <div class="row" v-for="row in 3">
    <div class="column" v-for="column in 10">
      <div class="cell">
        Row: {{ row }} <br>
        Column {{ column }}
      </div>
    </div>
  </div>
</div>

Как исправить эту багулину ? введите сюда описание изображения


Ответы (1 шт):

Автор решения: frozencoast

Заменяем flex на inline-flex и вуаля:

Vue.config.devtools = false
Vue.config.productionTip = false
const vm = new Vue({
  el: "#table"
})
.table {
  /* display: flex; 
  Использование inline-flex предотвращает выход 
  дочерних элементов за рамки родителя */
  display: inline-flex;
  flex-flow: column nowrap; 
  overflow-x: auto;
}

.row {
  width: 100%;
  /* display: flex; 
  И снова спасает inline-flex */
  display: inline-flex;
  flex-flow: row nowrap;
  align-items: flex-start;
  border-bottom: 1px solid #d0d0d0;
}

.column {
  /* flex: 1 0 150px;
  max-width: 150px;
  Используем конкретную ширину для корректного 
  расчета ширины родительского контейнера
  можно комбинировать max-width и min-width */
  width: 150px;
}

.cell {
  padding: 20px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div class="table" id="table">
  <div class="row" v-for="row in 3">
    <div class="column" v-for="column in 10">
      <div class="cell">
        Row: {{ row }} <br>
        Column {{ column }}
      </div>
    </div>
  </div>
</div>

→ Ссылка