Flexbox 不可能的子列

Sub-columns impossble with flexbox

无法将这 2 个列与子列集成:

我被迫使用这个结构:

<div class="custom_classes">
<div class="custom_classes">col1</div>
<div class="custom_classes">col2</div>
<div class="custom_classes">col 2.1</div>
<div class="custom_classes">col 2.2</div>
<div>

改用CSS网格

执行此操作的最简单方法是使用 CSS grid(并且也是响应)

...这个css 属性 grid-column

这是 shorthand 对应 grid-column-startgrid-column-end

详情: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-column

使用 Firefox DevTools 我单击代码中的网格按钮,这使我看起来像一个网格可视化工具...

在论文中,我开始考虑...我发现最好的方法是创建一个基于网格的 4 列。

如果你想学习,这里是代码:)

body {
  display: grid;
  place-content: center;
  height: 100vh;
}

.container {
  display: grid;
  gap: 0.5em;
  height: 80vh;
  width: 80vw;
}

.container .child {
  background: lightblue;
  display: grid;
  place-content: center;
}

.child1 {
  grid-column: 1/2;
  grid-row: 1/3;
}

.child2 {
  grid-column: 2/4;
}

.child3 {
  grid-column: 2/3;
}

.child4 {
  grid-column: 3/4;
}
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <link rel="stylesheet" href="style.css">
</head>

<body>
  <div class="container">
    <div class="child child1">col1</div>
    <div class="child child2">col2</div>
    <div class="child child3">col 2.1</div>
    <div class="child child4">col 2.2</div>
  </div>
</body>

</html>

使用 Flexbox

.classes_container{
  background: whitesmoke;
  position: relative;
  width: 100%;
  height: 300px;
  left: 0;
  right: 0;
  bottom: 0;
  top: 0;
  margin: 20px auto;
  display: flex;
}

.item{
  background: #d3f9d2;
  padding: 5px;
  margin: 5px;
  text-align: center;
  line-height: 200px;
  font-weight: bold;
  
}

.col1{
  width: 60%;
  height: 95%
}

.col2{
  width: 40%;
  height: 50%;
  
}

.col2_1{
  width: 18%;
  height: 39%;
  margin-right: 10px;
}
.col2_2{
  width: 18%;
  height: 39%;
  margin-left: 10px;
}

.col2_1 {
  align-self: end;
  position: absolute;
  right: 19%;
}

.col2_2 {
  align-self: end;
  position: absolute;
  right: 1px;
  
}
<div class="classes_container">
  <div class="col1 item">col1</div>
  <div class="col2 item">col2</div>
  <div class="col2_1 item">col 2.1</div>
  <div class="col2_2 item">col 2.2</div>
  <div>
</div>