#reactjs #sass #next.js
#reactjs #нахальство #next.js
Вопрос:
Я использую next.js и реагировать.
Я использую sass для укладки.
Я хочу использовать псевдоэлемент after, чтобы он выглядел так, как будто тег div и изображение перекрываются. (Изображение находится спереди, а псевдоэлемент — сзади.)
Однако изображение прозрачно, и я вижу псевдоэлементы за изображением.
Я не знаю, почему он прозрачный, когда я не использую непрозрачность.
const Index: FunctionComponent = () => {
return (
<>
<div className="bg-index height-100vh">
<div className="frame">
<span className="absolute z-index-10 top-10 left-10 transform">
<Image
src="/peach.jpg"
alt="peach"
className="background-no-repeat absolute z-index-10"
width={200}
height={200}
/>
</span>
</div>
</div>
</>
);
};
export default Index;
// position
div,
img,
span {
amp;.absolute {
position: absolute;
}
amp;.top-200 {
top: 100px;
}
amp;.right-100 {
right: 160px;
}
amp;.transform {
transform: rotate(-15deg);
}
}
//
// z-index
div,
img {
amp;.z-index-10 {
z-index: 10;
}
}
//backgroundColor
div {
amp;.bg-index {
background-color: #ecd3e8;
}
amp;.background-no-repeat {
background-repeat: no-repeat;
}
}
// height
div {
amp;.height-100vh {
height: 100vh;
}
}
div {
amp;.frame::after {
position: absolute;
display: block;
content: '';
top: 10px;
left: 10px;
width: 200px;
height: 200px;
box-shadow: 0 4px 10px rgba(51, 51, 51, 0.3);
background: rgba(221, 221, 221, 0.25);
background-blend-mode: hard-light;
z-index: 1;
}
}
Ответ №1:
background-blend-mode: hard-light;
это используется для смешивания двух элементов вместе и сделает его полупрозрачным. Удалите его, и оно больше не будет прозрачным
https://www.w3schools.com/cssref/pr_background-blend-mode.asp
Комментарии:
1. Я отключил его, но это не изменилось.
2. У вас также есть прозрачность для ваших значений RGBA. Последнее значение, альфа. Измените его с .25 на 1. box-shadow: 0 4px 10px rgba(51, 51, 51, 0.3); справочная информация: rgba(221, 221, 221, 0.25);