<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
body {
perspective: 400px;
}
.box {
/*翻转的是box*/
position: relative;
width: 300px;
height: 300px;
margin: 100px auto;
transition: all .4s;
/*让背面的紫色盒子保留立体空间*/
/*开启3D空间*/
transform-style: preserve-3d;
}
.box:hover {
transform: rotateY(180deg);
}
.front,
.back {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
border-radius: 50%;
font-size: 30px;
color: #fff;
text-align: center;
line-height: 300px;
}
.front {
background-color: pink;
z-index: 1;
}
.back {
background-color: purple;
/*像手机一样,背靠背旋转*/
transform: rotateY(180deg);
}
</style>
</head>
<body>
<div class="box">
<div class="front">请翻开</div>
<div class="back">我爱你</div>
</div>
</body>
</html>
`
一直有小伙伴说反转不出来,开始有一个人说的时候没觉的奇怪,发现评论区的小伙伴都这样说,自己去试了一下,谷歌是可以的,ie和qq浏览器都是不可以的,于是尝试解决了下。
发现front设置了z-index是1,结果反转过来的时候它的z-index还是1,把紫色的给覆盖掉了,让它反转过来变成-1。让紫色盒子上去就能看到紫色的了。
.front:hover {
z-index: -1;
}
评论区大佬们提出了backface-visibility: hidden;属性,尝试了一下果然可以了。
大佬们🐂,看来css还是要重新看一遍。
.front {
background-color: pink;
z-index: 1;
backface-visibility: hidden;
}