当前位置:首页 > 技术博客 > CSS > css3悬停卡片3D翻转动画特效

css3悬停卡片3D翻转动画特效

5年前 (2021-06-19)CSS1062

css3卡片和文字翻转切换效果,制作悬停卡片3D翻转特效。


<style>    
*, *:before, *:after {    
box-sizing: border-box;    
}    
html {    
font-size: 18px;    
line-height: 1.5;    
font-weight: 300;    
color: #333;    
font-family: "Nunito Sans", sans-serif;    
}    
body {    
margin: 0;    
padding: 0;    
height: 100vh;    
background-color: #ecf0f9;    
background-attachment: fixed;    
}    
.content {    
display: flex;    
margin: 0 auto;    
justify-content: center;    
align-items: center;    
flex-wrap: wrap;    
max-width: 1000px;    
}    
.heading {    
width: 100%;    
margin-left: 1rem;    
font-weight: 900;    
font-size: 1.618rem;    
text-transform: uppercase;    
letter-spacing: .1ch;    
line-height: 1;    
padding-bottom: .5em;    
margin-bottom: 1rem;    
position: relative;    
}    
.heading:after {    
display: block;    
content: '';    
position: absolute;    
width: 60px;    
height: 4px;    
background: linear-gradient(135deg, #1a9be6, #1a57e6);    
bottom: 0;    
}    
.description {    
width: 100%;    
margin-top: 0;    
margin-left: 1rem;    
margin-bottom: 3rem;    
}    
.card {    
color: inherit;    
cursor: pointer;    
width: calc(33% - 2rem);    
min-width: calc(33% - 2rem);    
height: 400px;    
min-height: 400px;    
perspective: 1000px;    
margin: 1rem;    
position: relative;    
}    
@media screen and (max-width: 800px) {    
.card {    
width: calc(50% - 2rem);    
}    
}    
@media screen and (max-width: 500px) {    
.card {    
width: 100%;    
}    
}    
.front,    
.back {    
display: flex;    
border-radius: 6px;    
background-position: center;    
background-size: cover;    
text-align: center;    
justify-content: center;    
align-items: center;    
position: absolute;    
height: 100%;    
width: 100%;    
-webkit-backface-visibility: hidden;    
backface-visibility: hidden;    
transform-style: preserve-3d;    
transition: ease-in-out 600ms;    
}    
.front {    
background-size: cover;    
padding: 2rem;    
font-size: 1.618rem;    
font-weight: 600;    
color: #fff;    
overflow: hidden;    
font-family: Poppins, sans-serif;    
}    
.front:before {    
position: absolute;    
display: block;    
content: '';    
top: 0;    
left: 0;    
right: 0;    
bottom: 0;    
background: linear-gradient(135deg, #1a9be6, #1a57e6);    
opacity: .25;    
z-index: -1;    
}    
.card:hover .front {    
transform: rotateY(180deg);    
}    
.card:nth-child(even):hover .front {    
transform: rotateY(-180deg);    
}    
.back {    
background: #fff;    
transform: rotateY(-180deg);    
padding: 0 2em;    
}    
.card:hover .back {    
transform: rotateY(0deg);    
}    
.card:nth-child(even) .back {    
transform: rotateY(180deg);    
}    
.card:nth-child(even):hover .back {    
transform: rotateY(0deg);    
}    
.button {    
transform: translateZ(40px);    
cursor: pointer;    
-webkit-backface-visibility: hidden;    
backface-visibility: hidden;    
font-weight: bold;    
color: #fff;    
padding: .5em 1em;    
border-radius: 100px;    
font: inherit;    
background: linear-gradient(135deg, #1a9be6, #1a57e6);    
border: none;    
position: relative;    
transform-style: preserve-3d;    
transition: 300ms ease;    
}    
.button:before {    
transition: 300ms ease;    
position: absolute;    
display: block;    
content: '';    
transform: translateZ(-40px);    
-webkit-backface-visibility: hidden;    
backface-visibility: hidden;    
height: calc(100% - 20px);    
width: calc(100% - 20px);    
border-radius: 100px;    
left: 10px;    
top: 16px;    
box-shadow: 0 0 10px 10px rgba(26, 87, 230, 0.25);    
background-color: rgba(26, 87, 230, 0.25);    
}    
.button:hover {    
transform: translateZ(55px);    
}    
.button:hover:before {    
transform: translateZ(-55px);    
}    
.button:active {    
transform: translateZ(20px);    
}    
.button:active:before {    
transform: translateZ(-20px);    
top: 12px;    
}    
</style>    
    
<div class="content">    
<h1 class="heading">Card Flip</h1>    
<p class="description">Hover over a card to flip it.</p><a class="card" href="#!">    
<div class="front" style="background-image: url(https://www.uxqr.com/background.php?664);">    
<p>Lorem ipsum dolor sit amet consectetur adipisi.</p>    
</div>    
<div class="back">    
<div>    
<p>Consectetur adipisicing elit. Possimus, praesentium?</p>    
<p>Provident consectetur natus voluptatem quis tenetur sed beatae eius sint.</p>    
<button class="button">Click Here</button>    
</div>    
</div></a><a class="card" href="#!">    
<div class="front" style="background-image: url('https://www.uxqr.com/background.php?665');">    
<p>Lorem ipsum dolor sit amet consectetur adipisi.</p>    
</div>    
<div class="back">    
<div>    
<p>Consectetur adipisicing elit. Possimus, praesentium?</p>    
<p>Provident consectetur natus voluptatem quis tenetur sed beatae eius sint.</p>    
<button class="button">Click Here</button>    
</div>    
</div></a><a class="card" href="#!">    
<div class="front" style="background-image: url('https://www.uxqr.com/background.php?666');">    
<p>Lorem ipsum dolor sit amet consectetur adipisi.</p>    
</div>    
<div class="back">    
<div>    
<p>Consectetur adipisicing elit. Possimus, praesentium?</p>    
<p>Provident consectetur natus voluptatem quis tenetur sed beatae eius sint.</p>    
<button class="button">Click Here</button>    
</div>    
</div></a><a class="card" href="#!">    
<div class="front" style="background-image: url('https://www.uxqr.com/background.php?667');">    
<p>Lorem ipsum dolor sit amet consectetur adipisi.</p>    
</div>    
<div class="back">    
<div>    
<p>Consectetur adipisicing elit. Possimus, praesentium?</p>    
<p>Provident consectetur natus voluptatem quis tenetur sed beatae eius sint.</p>    
<button class="button">Click Here</button>    
</div>    
</div></a><a class="card" href="#!">    
<div class="front" style="background-image: url('https://www.uxqr.com/background.php?668');">    
<p>Lorem ipsum dolor sit amet consectetur adipisi.</p>    
</div>    
<div class="back">    
<div>    
<p>Consectetur adipisicing elit. Possimus, praesentium?</p>    
<p>Provident consectetur natus voluptatem quis tenetur sed beatae eius sint.</p>    
<button class="button">Click Here</button>    
</div>    
</div></a><a class="card" href="#!">    
<div class="front" style="background-image: url('https://www.uxqr.com/background.php?669');">    
<p>Lorem ipsum dolor sit amet consectetur adipisi.</p>    
</div>    
<div class="back">    
<div>    
<p>Consectetur adipisicing elit. Possimus, praesentium?</p>    
<p>Provident consectetur natus voluptatem quis tenetur sed beatae eius sint.</p>    
<button class="button">Click Here</button>    
</div>    
</div></a>    
</div>


演示页可能会出现问题,但是保存到本地是没有问题的,把背景图片路径换一下就好了



版权声明:本文由 LzxBlog 发布,如需转载请注明出处。

本文链接:https://www.liuzhixi.cn/html/65.html

相关文章

CSS原子环绕标志动画

CSS原子环绕标志动画

CSS原子环绕标志动画<head> <meta charset="UTF-8"> <meta...

纯css loading

纯css loading

页面加载loading沙漏动画特效<html> <head> <style> .container {...

糖果风格的动画按钮

糖果风格的动画按钮

这是一款糖果风格的动画按钮,共 16 个,每个按钮都有不同的渐变色和动画形式。<!DOCTYPE html>  &nb...

CSS3金色阴影文字

CSS3金色阴影文字

主要使用了 CSS3 的线性渐变属性、滤镜属性、变形属性等等。由于这些都是高级属性,所以不兼容 IE 10 及以下的版本。<!DOCTYPE h...

很有意境的日式字体背景

很有意境的日式字体背景

日式风格的字体背景,颜色很漂亮,很有意境,很多小伙伴都在苦苦寻觅,今天它来啦,具体效果可以打开预览查看,个人非常喜欢,小编也是费了好大力气才找到的。<ht...

简约大气的网页背景渐变特效

简约大气的网页背景渐变特效

渐变色背景的应用在各种网页制作、ui设计是非常普遍的,分享的这套渐变背景简约大气,颜色配比很灵活,给人舒适感。有没有也觉得不错的小伙伴呢?bogy{ &nbs...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。