【发布时间】:2020-04-28 18:26:40
【问题描述】:
我正在尝试重新创建这个:
但我没能做到。我尝试在 img 上添加 :before 但这不起作用。你会怎么做这个。它必须以背景不大于图像的方式进行响应。
搜索引擎优化并不重要,所以 background-image 或任何对我来说都很好的东西。
用 SCSS 编写 - 可以更改 HTML
ROB 答案的更新代码
这是我目前的代码
.imgbox {
padding: 5%;
position: relative;
height: auto;
.backdrop {
position: relative;
min-width: 100px;
min-height: 100px;
div {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
max-width: 100%;
max-height: 100%;
background: rgb(208, 0, 0);
background: linear-gradient(
90deg,
rgba(208, 0, 0, 1) 0%,
rgba(149, 0, 0, 1) 100%
);
}
transform: translateX(-5px) translateY(5px);
}
.img {
width: 100%;
height: auto;
transform: translateX(5px) translateY(-5px);
}
}
<div className="imgbox">
<div className="backdrop">
<div></div>
</div>
<img
className="img"
src={'https://source.unsplash.com/400x250'}
alt="test"
>
</div>
【问题讨论】:
-
您的 HTML 无效。没有自我关闭
<div />这样的东西。此外,<img>标签不使用也不需要结束斜杠,在 HTML 中也从来没有。 -
即使我修复了它,它也不起作用
-
你为什么不在
上使用阴影。可以使用box-shadow generator 轻松创建?
-
背景框有线性渐变,不能用框阴影制作
-
如果您需要渐变,请查看stackoverflow.com/questions/61475188/…