我的图像有以下标记:
img.framed
{
border-image: url('../images/design/frame.png') 40 40 40 40 stretch stretch;
border-color: #f4be52; border-style: inset; border-width: 40px;
}
我得到了这个结果:
我不喜欢,框架内的图像覆盖了我框架的一部分。
如何修改我的代码以在图像上显示框架?
像那样:
必须隐藏图像的某些部分才能创建您想要的内容。
创建具有您的图像的主 div,以及另一个用于框架边框的 div。
这个主 div 是相对定位的,因此其中绝对定位的元素是相对于它的。
将框架边框背景应用于子 div,而不是图像。这个子 div 应该与图像的宽度和高度几乎相同,并且z-index
大于图像。此外,将其稍微放在顶部和左侧以成像。
<div class="main">
<div class="image-container">
<!-- does not actually contain the image -->
</div>
<img src="some image"/>
</div>
我使用纯边框来显示重叠。绿色边框与图像的黄色背景重叠。
这是CSS:
.main {
position: relative;
top: 100px;
left: 10%;
}
.image-container {
position: absolute;
left: -70px;
top: -70px;
border: 20px solid rgba(25,255,25, 0.5);
z-index: 5;
width: 230px;
height: 330px;
border-image: url('your frame link') 90 90 90 90 stretch stretch;
border-color: #f4be52;
border-style: inset;
border-width: 86px;
}
img {
position: absolute;
background: #eaff77;
width: 260px;
height: 360px;
z-index: 1;
}
.main:hover > img {
z-index: 10;
}
更新:
我已经用真实图像和适当的宽度和高度更新了小提琴。请检查。
当您将鼠标悬停在图像上时,您会看到实际大小。这只是为了证明 Frame 实际上与图像重叠,这正是您想要的。