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>

效果图如下:

在这里插入图片描述

在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章