是否可以将颜色和图像与渐变结合起来?

Is it possible to combine a color and a image with gradients?

我想要一个分割背景,左边是颜色,右边是图像,两者应该同样大(各占 50%)。所以我知道我可以像这样设置主体样式,使主体左侧 50% 变为红色,右侧变为蓝色:

background-image: linear-gradient(to right, red, red 50%, blue 50%, blue);

我想要这样的东西:

background-image: linear-gradient(to right, red, red 50%, url('image.jpg') 50%, url('image.jpg'));

这可能吗,还是我应该采取其他方法?

我知道我可以将它分成两个 div,让它们各占 50%,并在它们上设置我想要的任何背景,但我想要一个透明的导航栏,它应该从左边开始向右,所以这就是有两个 div 的问题。

感谢您的帮助!

你可以做到

background: linear-gradient(90deg, red 50%, rgba(0, 0, 0, 0) 50%), url('image.jpg');

您可以将两者与逗号一起使用,因为 linear-gradient 使用 background-image css 属性,但是像这样使用背景图像和线性渐变似乎很难使这项工作的方式。如果您在 nav 中创建一个宽度为 100% 的绝对定位内部容器,并在其中添加两个 div,那么这些 div 都可以是 50%,然后您可以相应地设置每个样式。确保父元素是 position: relative,这样您就可以设置 z-index 以使内部容器位于您的导航元素下方。以下是它如何工作的示例。希望这有帮助。

例子

nav {
  height: 240px;
  width: 100%;
  display: block;
  position: relative;
}
.inner-container {
   height: 100%;
   width: 100%;
   position: absolute;
   display: flex;
   opacity: 0.5;
   z-index: 0;
}
.inner-container > div {
   flex: 1 1 50%;
}
#blue-box {
    background: linear-gradient(#e66465, #9198e5);
}
#img-box {
    background: url(https://teamroboboogie.com/wp-content/uploads/2017/06/campo_logo_lrg.png) no-repeat;
    background-size: 100% 100%;
}

ul {
  margin: 0;
  padding: 0;
  display: block;
  z-index: 1;
  position: relative;
}
li {
  display: inline-block;
  width: 30%;
  background: rebeccapurple;
  color: white;
  padding: 20px;
  box-sizing: border-box;
  cursor: pointer;
}
li:nth-child(2) {
  margin: 0 5%;
}
<nav>
  <div class="inner-container">
    <div id="blue-box">

    </div>
    <div id="img-box">

    </div>
  </div>
  <ul>
    <li>This could be a button</li><!--
 --><li>This could be a button</li><!--
 --><li>This could be a button</li>
  </ul>
</nav>