REACT - 用容器划分背景颜色

REACT - Divide background-color with containers

这个问题一直困扰着我,直到今天我都找不到最优化的解决方案。

假设我有 2 个 DIV,AB。两个 DIV 都在一个容器内,并且每个都分配了一组列。为 DIV 填充背景颜色的最佳方法是什么,并且它会占据屏幕剩余的左侧和右侧?我的意思是,左侧背景颜色将占据整个左侧 DIV 的宽度 + 元素未使用的剩余左侧宽度。 (右侧相同)

为了更好地说明,这里有一张图片:imagine example

我知道通过使用线性渐变我们可以分割背景,但在 lower/higher 视口中,它会变得棘手。

我希望它不会太混乱而难以理解,如果它太愚蠢,我深表歉意。

你不能给容器上色并使 div 透明吗?

<div class="orange-container">
  <div class="transparent-div">
    // Stuff here
  </div>
</div>
<div class="blue-container">
  <div class="transparent-div">
    // Stuff here
  </div>
</div>

好的,我认为最好的方法是采用以下方法:

    <div style="background: linear-gradient(90deg, #8A66B9 50%, #ffff 50%);">
      <div class="container">
        <div class="row">
          <div class="col-7" style="background-color:#8A66B9">
            A
          </div>
          <div class="col-5" style="background-color:#ffff">
            B
          </div>
        </div>
      </div>
    </div>

因此,我有一个背景为 50/50 的 parent DIV。然后,我为每个背景设置背景颜色。

你可以让整个容器都变成橙色,然后在组件 A 之后用一个伪元素覆盖它。这将有蓝色背景,并且比已知需要的更高和更宽,所以它覆盖了从组件 A 的右边界开始的整个容器右侧。

此代码段不得不发明组件的放置方式,但这超出了本问题的范围 - 它只是出于演示目的选择了任意的左侧和顶部位置和大小。

<style>body,
.container,
.A,
.B,
.A::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

.container {
  background: orange;
  width: 100vw;
  height: 100vh;
  overflow: hidden;
  position: relative;
}

.A {
  width: 30%;
  height: 30%;
  display: inline-block;
  position: relative;
  top: 10%;
  left: 20%;
  border: solid 1px black;
}

.B {
  width: 20%;
  height: 30%;
  position: absolute;
  display: inline-block;
  left: calc(20% + 30%);
  /* just for demo */
  top: 10%;
  border: solid 1px black;
}

.A::after {
  content: '';
  display: inline-block;
  position: absolute;
  top: -100vh;
  left: 100%;
  width: 100vw;
  height: 200vh;
  background: blue;
}

</style>
<div class="container">
  <div class="A">A</div>
  <div class="B">B</div>
</div>