Html 如何将图像放置在另一个具有透明背景的图像后面

Html 如何将图像放置在另一个具有透明背景的图像后面,html,css,Html,Css,我有一个圆形的方形框图像,它有一条红色的条纹,沿着左侧延伸,有一个透明的背景(白色的部分),这是我在photoshop中创建的。我想在这个盒子后面放一张图片。我已尝试设置位置:绝对和z-index:-1但是,它将图像放置在一切后面。有没有一种方法可以通过CSS实现这一点?另外,我一直在寻找解决方案,但我遇到的那些似乎对我毫无帮助 CSS: 如果不在元素上设置位置,则无法可靠地设置z索引;堆叠也与元素的容器有关,因此如果所有内容都在根级别,则带有负z索引的图像将消失在页面后面。(就我个人而言,我

我有一个圆形的方形框图像,它有一条红色的条纹,沿着左侧延伸,有一个透明的背景(白色的部分),这是我在photoshop中创建的。我想在这个盒子后面放一张图片。我已尝试设置
位置:绝对
z-index:-1但是,它将图像放置在一切后面。有没有一种方法可以通过CSS实现这一点?另外,我一直在寻找解决方案,但我遇到的那些似乎对我毫无帮助

CSS:


如果不在元素上设置
位置
,则无法可靠地设置
z索引
;堆叠也与元素的容器有关,因此如果所有内容都在根级别,则带有负
z索引的图像将消失在页面后面。(就我个人而言,我尽可能避免负
z-index
值。)

编辑: 问题在于,HTML的结构是这样的,即红色条纹是要将图像加载到的容器的背景图像。由于它还有一个
背景色
,因此图像在其后面丢失

更好的方法是使用HTML/CSS的自然文档流,即元素在HTML中出现得越晚,在自然z索引中的位置就越高。这意味着您不必指定
z-index
值,但您需要在代码中添加一个表示性的
div
(除非您想在
伪元素之后使用
):

每个灰色框需要如下所示:

<div class="grey box">
    <h3><a href="#">Stationary</a></h3>
    <a href="#" class="normal"><span class="border">&nbsp;</span><img src="http://placekitten.com/g/361/220"><div class="innerBox">&nbsp;</div></a>
</div>
然后,您可以从
#box.box
中删除z索引,因为
innerBox
div出现在标记中的图像之后,它自然会高于图像

如果无法向标记模板添加任何额外的HTML,则可以重新调整
边框
div的用途,这似乎没什么作用:

#boxes .border
{
    border:none;
    z-index:1;
    cursor:pointer;
    position: absolute;
    left: 0;
    top: 0;    
    width:370px;
    height:241px;
    background-image:url(http://i754.photobucket.com/albums/xx182/rache_R/box_front_zps196242cf.png);
    background-repeat:no-repeat;
}
您还需要更新图像:

#boxes img {
    /* other declarations */
    position: absolute; 
    left: 4px; 
    top: 0;
    /* other declarations */
}
。。。并确保您的
#box.box
样式具有
位置:相对设置


这应该可以做到:

如果不在元素上设置
位置,就无法可靠地设置
z-index
;堆叠也与元素的容器有关,因此如果所有内容都在根级别,则带有负
z索引的图像将消失在页面后面。(就我个人而言,我尽可能避免负
z-index
值。)

编辑: 问题在于,HTML的结构是这样的,即红色条纹是要将图像加载到的容器的背景图像。由于它还有一个
背景色
,因此图像在其后面丢失

更好的方法是使用HTML/CSS的自然文档流,即元素在HTML中出现得越晚,在自然z索引中的位置就越高。这意味着您不必指定
z-index
值,但您需要在代码中添加一个表示性的
div
(除非您想在
伪元素之后使用
):

每个灰色框需要如下所示:

<div class="grey box">
    <h3><a href="#">Stationary</a></h3>
    <a href="#" class="normal"><span class="border">&nbsp;</span><img src="http://placekitten.com/g/361/220"><div class="innerBox">&nbsp;</div></a>
</div>
然后,您可以从
#box.box
中删除z索引,因为
innerBox
div出现在标记中的图像之后,它自然会高于图像

如果无法向标记模板添加任何额外的HTML,则可以重新调整
边框
div的用途,这似乎没什么作用:

#boxes .border
{
    border:none;
    z-index:1;
    cursor:pointer;
    position: absolute;
    left: 0;
    top: 0;    
    width:370px;
    height:241px;
    background-image:url(http://i754.photobucket.com/albums/xx182/rache_R/box_front_zps196242cf.png);
    background-repeat:no-repeat;
}
您还需要更新图像:

#boxes img {
    /* other declarations */
    position: absolute; 
    left: 4px; 
    top: 0;
    /* other declarations */
}
。。。并确保您的
#box.box
样式具有
位置:相对设置


这应该可以做到:

如果不在元素上设置
位置,就无法可靠地设置
z-index
;堆叠也与元素的容器有关,因此如果所有内容都在根级别,则带有负
z索引的图像将消失在页面后面。(就我个人而言,我尽可能避免负
z-index
值。)

编辑: 问题在于,HTML的结构是这样的,即红色条纹是要将图像加载到的容器的背景图像。由于它还有一个
背景色
,因此图像在其后面丢失

更好的方法是使用HTML/CSS的自然文档流,即元素在HTML中出现得越晚,在自然z索引中的位置就越高。这意味着您不必指定
z-index
值,但您需要在代码中添加一个表示性的
div
(除非您想在
伪元素之后使用
):

每个灰色框需要如下所示:

<div class="grey box">
    <h3><a href="#">Stationary</a></h3>
    <a href="#" class="normal"><span class="border">&nbsp;</span><img src="http://placekitten.com/g/361/220"><div class="innerBox">&nbsp;</div></a>
</div>
然后,您可以从
#box.box
中删除z索引,因为
innerBox
div出现在标记中的图像之后,它自然会高于图像

如果无法向标记模板添加任何额外的HTML,则可以重新调整
边框
div的用途,这似乎没什么作用:

#boxes .border
{
    border:none;
    z-index:1;
    cursor:pointer;
    position: absolute;
    left: 0;
    top: 0;    
    width:370px;
    height:241px;
    background-image:url(http://i754.photobucket.com/albums/xx182/rache_R/box_front_zps196242cf.png);
    background-repeat:no-repeat;
}
您还需要更新图像:

#boxes img {
    /* other declarations */
    position: absolute; 
    left: 4px; 
    top: 0;
    /* other declarations */
}
。。。并确保您的
#box.box
样式具有
位置:相对设置


这应该可以做到:

如果不在元素上设置
位置,就无法可靠地设置
z-index
;堆叠也与元素的容器有关,因此如果所有内容都在根级别,则带有负
z索引的图像将消失在页面后面。(就我个人而言,我尽可能避免负
z-index
值。)

编辑: 问题在于,HTML的结构是这样的,即红色条纹是要将图像加载到的容器的背景图像。由于它还有一个
背景色
,因此图像在其后面丢失

一个更好的方法是使用HTML/CSS的自然文档流,即t