我想允许我的用户点击卡片来"取消它"。我可以照顾JS,但我想知道什么是最好的方法来添加一个"红色不透明覆盖"的顶部卡后,用户点击它。
所以理想的情况下我可以写一个css类,比如但是也可以使它不仅仅是40%透明,而且还有点"红",如果可能的话我不想再创建一个封装整个卡片的潜水。
.card-deactivated{
opacity:40%
}
x一个一个一个一个x一个一个二个x
- 编辑**我通过使用这个css获得了一些结果,但是我不认为我做得"正确"......或者至少是以最好的方式。
.card{
max-width:300px;
min-width:200px;
height: 350;
display: flex;
flex-direction: column;
padding: 0px 0px 20px;
gap: 10px;
background: #FFFFFF;
/* Gray/4px */
box-shadow: 0px 4px 8px rgba(41, 41, 41, 0.08);
border-radius: 10px;
overflow:hidden;
position:relative;
}
.overlay-selected::after {
content: "";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
opacity: .3;
background-image: linear-gradient(90deg, #eaee44, #eaee44);
}
1条答案
按热度按时间p4rjhz4m1#
您可以使用其中一个伪元素(
::before
或::after
)来实现这一点,当用户单击.card
元素时,它将充当覆盖层。基本上,我们首先将对覆盖层进行样式化,我们将使用
::after
伪元素,并使用-1
的z-index
将其放置在.card
元素之后,这样覆盖层在开始时就被隐藏了。添加到.card
元素,.card
元素简单地将覆盖的z-index
设置为更高的值(如2
或999
),以便覆盖出现在.card
元素的顶部并充当预期的覆盖。为了使覆盖过渡平滑,我们首先将其
background-color
设置为transparent
,并在is-canceled
类附加到.card
元素时覆盖它。我们将background-color
设置为红色背景(类似于rgba(255, 0, 0, .7)
。使用transition
属性,我们可以指示浏览器在.card
元素中添加/删除is-canceled
时进行平滑过渡。为了说明这一点,下面是一个实时演示,它允许您在单击
.card
元素时切换覆盖:上面的演示仅用于演示目的,我们邀请您在此基础上进行构建,并以您认为合适的方式进行自定义。