2

我的图像有以下标记:

img.framed
{
    border-image: url('../images/design/frame.png') 40 40 40 40 stretch stretch;
    border-color: #f4be52; border-style: inset; border-width: 40px;
}

我得到了这个结果:

在此处输入图像描述

我不喜欢,框架内的图像覆盖了我框架的一部分。

如何修改我的代码以在图像上显示框架

像那样:

在此处输入图像描述

4

1 回答 1

3

必须隐藏图像的某些部分才能创建您想要的内容。

创建具有您的图像的主 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>

JS小提琴

我使用纯边框来显示重叠。绿色边框与图像的黄色背景重叠。

这是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 实际上与图像重叠,这正是您想要的。

于 2013-08-06T12:41:33.377 回答