css动画 翻开折叠生日贺卡

做法:
	平面div,设置前后伪类分别覆盖一半大小,设置前面的伪类旋转点为最左边的线,旋转角度为负值向外
	设置后面的伪类旋转点为最右边的线,旋转角度为正值向内
	设置最外层元素transform-style: preserve-3d;可以查看3d效果
	transform: perspective(900px) rotateX(45deg) rotateY(25deg);透视和旋转一定角度增强立体感

代码示例:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	<link rel="stylesheet" href="./index.css">
	<style>
		.box{
			width: 400px;
			height: 400px;
			border: solid 1px blueviolet;
			display: flex;
			align-items: center;
			justify-content: center;
		}
		
		.d1{
			width: 300px;
			height: 200px;
			background-color: orange;
			position: relative;
			transform-style: preserve-3d;
			transform: perspective(900px) rotateX(45deg) rotateY(25deg);
			display: flex;
			align-items: center;
			justify-content: center;
			color: white;
		}
		.d1::before,.d1::after
		{
			content: '';
			background-color:#E34336;
			width: 50%;
			height: 100%;
			position:absolute;
			border-right: solid 2px orange;
			box-sizing: border-box;
		}
		.d1::before{
			content: '生日';
			color: white;
			left: 0;
			top: 0;
			display: flex;
			justify-content: flex-end;
			align-items: center;
			transition: 2s;
			transform-origin: left;
			
		}
		.d1::after{
			content: '贺卡';
			color: white;
			right: 0;
			top: 0;
			display: flex;
			justify-content: flex-start;
			align-items: center;
			transition: 2s;
			transform-origin: right;
		}
		
		.d1:hover::before{
			transform:rotateY(-180deg);
		}
		.d1:hover::after{
			transform:rotateY(180deg);
		}

		
	</style>
	</head>
	<body class='me'>
		<div class='box'>
			<div class='d1'>生日快乐</div>
			
			
			
		</div>
		
	</body>
</html>

效果图:
在这里插入图片描述在这里插入图片描述在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值