当前位置: 首页 > 面试题库 >

如何在先前的背景图像之上添加背景图像?

王轶
2023-03-14
问题内容

我有一个正在编写的CSS页面,我需要在一个类中应用背景图像,然后使用另一个类将一个局部透明的背景图像放在已经存在的背景图像之上。这只是一个简单的字眼,所以让我做一个示范。

html{
    <div class="background1">...</div>
    <div class="background1 backgroundFilter">...</div>
    <div class="background2">...</div>
    <div class="background2 backgroundFilter">...</div>
}
css {
    .background1 {
        background-image:url(...);
    }
    .background2 {
        background-image:url(...);
    }
    .backgroundFilter {
        background-image:url(...);
    }
}

在此示例中,第一个div应该具有背景图像1,第二个div应该具有背景图像1,但是滤镜图像位于其顶部,然后第三个div应该是图像2,第四个应该是图像2并且上面具有相同的滤镜。

但是,在此示例中,.backgroundFilter将覆盖之前的图像,而不是覆盖它。

这是否可能,或者我需要为每个版本的背景图像设置不同的类吗?


问题答案:

您可以考虑CSS变量。指定2个背景层,以后可以更改。您可以轻松缩放到任意数量的背景:

.container > div {

  background:

    /*we make the default value a transparent image*/

    var(--im1,linear-gradient(transparent,transparent)),

    var(--im2,linear-gradient(transparent,transparent));



  height:200px;

  width:200px;

  display:inline-block;

}



.background1 {

  --im2: url(https://picsum.photos/200/300?image=0);

}



.background2 {

  --im2: url(https://picsum.photos/200/300?image=1069);

}



.backgroundFilter {

  --im1: linear-gradient(to right,transparent,green);;

}


<div class="container">

<div class="background1">...</div>

<div class="background1 backgroundFilter">...</div>

<div class="background2">...</div>

<div class="background2 backgroundFilter">...</div>

</div>

您还可以为新背景考虑伪元素,但是由于我们只有2个伪元素,因此您只能使用3个背景:

.container > div {

  height:200px;

  width:200px;

  display:inline-block;

  position:relative;

  z-index:0;

}



.background1 {

  background: url(https://picsum.photos/200/300?image=0);

}



.background2 {

  background: url(https://picsum.photos/200/300?image=1069);

}



.backgroundFilter::before {

  content:'';

  position:absolute;

  z-index:-1;

  top:0;

  left:0;

  right:0;

  bottom:0;

  background: linear-gradient(to right,transparent,green);;

}


<div class="container">

<div class="background1">...</div>

<div class="background1 backgroundFilter">...</div>

<div class="background2">...</div>

<div class="background2 backgroundFilter">...</div>

</div>


 类似资料:
  • 问题内容: 此处已触及该主题,但未提供有关如何创建3D图并在平面中以指定高度插入图像的指示。 因此,要提出一个简单且可复制的案例,假设我使用以下代码创建了一个3D图: 在视觉上,我们有: 在级别上,这里是避免重叠的视觉偏移, 我想插入一张图像, 表示曲线显示特定值的元素。 怎么做? 在此示例中,我并不关心元素与其值之间的完美匹配,因此请随时上传您喜欢的任何图像。另外,如果对匹配不满意,有没有办法让

  • 除了背景颜色,也可以使用背景图像来实现各种复杂、有趣的背景效果。CSS中,使用 background-image属性来定义背景图像的路径,取值为 none | url,默认值为 none。 url 可以是相对路径,也可以是绝对路径。使用相对路径时,url 是相对于 css 所在的文件,而不是要设置样式的HTML文件。如,下面代码表示,使用 css 文件所在目录下的 img 文件夹下的图像 bg.g

  • 下面的外部CSS页面示例中的快速简单问题; 我知道它们会影响不同的元素选择器,我的问题是使用背景和背景图像有什么区别?一方可以访问另一方的特定属性吗?谢谢你。

  • 问题内容: 如果选择了该面板(单击该面板),则该面板的颜色为蓝色。另外,我在该面板上添加了一个小标志(图像),它表示所选面板之前已被选中。 因此,如果用户看到例如10个面板,其中有4个带有这个小标记,则他知道自己之前已经单击了这些面板。到目前为止,这项工作还不错。现在的问题是我无法显示小标志并使面板同时变为蓝色。 我使用css将面板设置为蓝色,使用设置背景图像。但是背景色似乎在图像上方,因此您看不

  • 问题内容: 假设我要在CSS中渲染箭头,箭头应具有头部,尾部和灵活的宽度,以便可以包含文本。我当然可以创建多个div来获得所需的内容,但是如何在CSS3中完成呢? 我可以使用多个背景图片: 的HTML: 这给了我一个带有箭头和尾巴的透明中间部分。似乎不可能在中间部分指定颜色。 仅使用一张背景图像,您可以执行以下操作: 我知道这在很多方面都是可行的,但是背景颜色属性是否真的从速记定义中丢失了? 问题