HTML 结构:

  1. <div class="box">
  2. <div class="item item1">
  3. 测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试
  4. 测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试
  5. 测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试
  6. </div>
  7. <div class="item item2">
  8. 测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试
  9. 测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试
  10. </div>
  11. <div class="item item3">
  12. 测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试
  13. </div>
  14. </div>

样式:

.item {
  width: 33.33%;
}
.item {
  background-color: red;
}
.item2 {
  background-color: blue;
}
.item3 {
  background-color: yellow;
}

Flex

原理:align-items: stretch flex元素会默认被拉伸到最高元素的高度

.box {
  display: flex;
}

负margin + padding

原理:利用负margin抵消padding带来的距离
缺点:会遮盖绝对定位元素

.box {
  /* display: flex; */
  overflow: hidden;
}    
.item {
  float: left;
  width: 33.33%;
  margin-bottom: -999px;
  padding-bottom: 999px;
}

Grid

原理:宽度和高度会默认填满整个项目

.box {
  display: grid;
  grid-template-columns: repeat(3, 33.33%);
}
.item {
  /* width: 33.33%; */
}