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