css芝麻开门
作者:互联网
芝麻开门:把鼠标放在门上,两扇门同时打开,而且角度是30度,门上的字体一直是倒立的。
思路:
- 设置初始状态:门关着的时候,字体是倒立的
- 设置结束状态:门打开角度30度,字体是倒立的
- 使用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