显示:inline-block last-child 宽度 100% 与其兄弟姐妹不对齐

Display: inline-block last-child width 100% doesn't align with its siblings

我正在与 CSS display: inline-block 合作。

.container div
{
  display: inline-block;
    width: calc((100% - 13px) / 2);
    margin: 2px;
    background: #fff;
    border-radius: 10px;
    color: #5e5e5e;
    cursor: pointer;
    margin-bottom: 6px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);
    transition: all 0.3s cubic-bezier(.25,.8,.25,1);
    border-bottom: 2px solid #80D0C7;
    position: relative;
}

.container div:last-child
{
  width: 100%;
}
<div class="container">
    <div class="red">Red</div>
    <div class="green">green</div>
    <div class="blue">blue</div>
    <div class="orange">orange</div>
    <div class="black">black</div>
</div>

我把 width: 100% 放在 div last-child 上。但是它给了额外的padding/margin。 我的问题是,如何使 div last-child 适合宽度 100% 而无需任何额外 padding/margin?

.container中使用display: flex,然后在所有div中使用flex-basis: calc(50% - 4px)(其中4px是每个div中边距的总和)最后一组flex-basis: 100%

.container {
  display: flex;
  flex-wrap: wrap;
}

.container div {
  background: #fff;
  border-radius: 10px;
  color: #5e5e5e;
  cursor: pointer;
  margin: 2px 2px 6px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
  transition: all 0.3s cubic-bezier(.25, .8, .25, 1);
  border-bottom: 2px solid #80D0C7;
  position: relative;
  flex: 0 calc(50% - 4px)
}

.container div:last-child {
  flex-basis: 100%;
}
<div class="container">
  <div class="red">Red</div>
  <div class="green">green</div>
  <div class="blue">blue</div>
  <div class="orange">orange</div>
  <div class="black">black</div>
</div>