其他分享
首页 > 其他分享> > css芝麻开门

css芝麻开门

作者:互联网

芝麻开门:把鼠标放在门上,两扇门同时打开,而且角度是30度,门上的字体一直是倒立的。
思路:

  1. 设置初始状态:门关着的时候,字体是倒立的
  2. 设置结束状态:门打开角度30度,字体是倒立的
  3. 使用transition过渡效果,完成动画。

难点:发现字体倒立要多写一行代码,原因是transform的值会把以前的覆盖掉。

代码如下:

<!DOCTYPE html>
<html>
<head>
	<title>芝麻开门案例</title>
	<style type="text/css">
		.box{
			/*设置门框*/
			width:900px;
			height:600px;
			border:5px solid red;
			display:flex;
			justify-content:space-between;
			margin:100px auto;

			/*设置透视点,即人眼位置,也可以不设置,默认为在遥远的地方*/
			perspective:1000px;
			transform-origin:center center;


		}

		.box div{
			/*设置两扇门的大小及字体*/
			width:446px;
			height:600px;
			border:2px solid red;
			color:red;
			font-size:80px;
			text-align:center;
			line-height:600px;

			/*对两扇门设置3D模式*/
			transform-style:preserve-3d;
			/*把两扇门的福字倒过来,没开门时的状态。必须写上这句,因为transform的值会覆盖掉以前的值,保证页面打开时门是关着的且字是倒立着。*/
			transform:rotateX(180deg);
			

			
		}

		/*设置左边门*/
		.box:hover .left{
			/*开门时,左边门先旋转30度(Y轴左门框),后把字进行翻转180度(x轴)。*/
			transform-origin:left center;
			/*由于transfom的值会覆盖上面,所以重新写一遍*/
			transform:rotateY(30deg) rotateX(180deg);
		}

		/*设置右边门*/
		.box:hover .right{
			transform-origin:right center;
			transform:rotateY(-30deg) rotateX(180deg);
		}
		
	</style>
</head>
<body>
	<div class="box">
		<div class="left">福</div>
		<div class="right">福</div>
	</div>
</body>
</html>

效果图如下:

在这里插入图片描述

在这里插入图片描述

silence cc 发布了48 篇原创文章 · 获赞 48 · 访问量 20万+ 私信 关注

标签:芝麻开门,box,center,两扇门,transform,设置,css,倒立
来源: https://blog.csdn.net/qq_19339041/article/details/104431335