问题
I want to add the card lift effect to my bootstrap cards with fluent design styles on hover. You can see what I mean on microsoft design website.
Here's what I tried, but there is something missing and I cannot quite grab it.
I tried:
.card {
box-shadow: -3px 6px 5px 0px rgba(176,164,176,1);
transition: all .3s ease-in-out;
}
.card:hover {
box-shadow: -3px 18px 20px 0px rgba(99,89,99,1);
}
<div class="card" style="width:19.5rem">
<div class="card-body">
Lorem ipsum dolor sit ameta, card content
</div>
</div>
Kindly thanks for your help.
回答1:
What makes the effect to looks like it is lifting is the transform: translate3d
, see translate3d w3cschools docs.
When the box-shadow
changes on :hover
the element itself moves in a different position, delivering the effect.
So by giving transform: translate3d(0px, -1px, 0px);
( translate3d(x,y,z) ), the element moves 1px
up and shadow casts down.
.card {
padding: 15px; /* JUST TO LOOK COOL */
border: 1px solid #eee; /* JUST TO LOOK COOL */
box-shadow: rgba(0, 0, 0, 0.06) 0px 2px 4px;
transition: all .3s ease-in-out;
}
.card:hover {
box-shadow: rgba(0, 0, 0, 0.22) 0px 19px 43px;
transform: translate3d(0px, -1px, 0px);
}
<div class="card" style="width:19.5rem">
<div class="card-body">
Lorem ipsum dolor sit ameta, card content
</div>
</div>
回答2:
To achieve this effect, microsoft uses multiple box-shadows like so:
box-shadow: rgba(0, 0, 0, 0.06) 0px 2px 4px, rgba(0, 0, 0, 0.05) 0px 0.5px 1px;
on hover:
box-shadow: rgba(0, 0, 0, 0.22) 0px 19px 43px, rgba(0, 0, 0, 0.18) 0px 4px 11px;
.card {
box-shadow: rgba(0, 0, 0, 0.06) 0px 2px 4px, rgba(0, 0, 0, 0.05) 0px 0.5px 1px;
transition: all .3s ease-in-out;
}
.card:hover {
box-shadow: rgba(0, 0, 0, 0.22) 0px 19px 43px, rgba(0, 0, 0, 0.18) 0px 4px 11px;
}
<div class="card" style="width:19.5rem">
<div class="card-body">
Lorem ipsum dolor sit ameta, card content
</div>
</div>
回答3:
You are missing the actual movement upward. Many ways to achieve this, for example:
.card:hover {
margin-top: -1px;
}
from the top of my head.
来源:https://stackoverflow.com/questions/51184792/fluent-design-card-lift-effect