如何在css的卡片翻转动画中使用transform:scale()
?当我在transform:scale(0.75);
上放置.container
并悬停以翻转卡片时,transform
会消失?有人有想法吗?谢谢你提前。
请使用chrome或safari查看问题。
@import url('https://fonts.googleapis.com/css?family=Playfair+Display:400,400i,700,700i,900,900i');
@import url('https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i,800,800i');
html, body {
height: 100%;
width: 100%;
margin: 0;
padding: 0;
background-color:#eaeaea;}
.container {
width:900px;
height:550px;
background-color:white;
position: absolute;
top:0;
bottom: 0;
left: 0;
right: 0;
margin: auto;}
.right-div {
width:540px;
height:550px;
background-image:url();
transform:scale(1);
background-position: -170px 0px;
background-size:cover;
position: absolute;
top:0;
bottom: 0;
right: 0;
margin: auto;}
.left-div {
width:323px;
height:550px;
background-color:white;
position: absolute;
top:0;
bottom: 0;
left: 0;
margin: auto;}
.content-name {
font-family: 'Open Sans', sans-serif;
letter-spacing: 3px;
font-size: 10px;
text-transform: uppercase;
color: #7E7E7E;
font-weight: 700;
margin-top:160px;
margin-left:40px;}
.content-title {
font-family: 'Playfair Display', serif;
font-size: 44px;
letter-spacing: 3px;
font-weight: 700;
color: #2C2C2C;
margin-top:10px;
margin-left:40px;}
.content-description {
margin-top: -20px;
font-family: 'Open Sans', sans-serif;
font-size: 13px;
color: #7e7e7e;
line-height: 22px;
margin-left:40px;}
.content-link {
position:absolute;
margin-top:20px;
color: #2C2C2C;
font-family: 'Open Sans', sans-serif;
letter-spacing: 3px;
font-size: 11px;
text-transform: uppercase;
font-weight: 700;
text-decoration: none;
margin-left:40px;}
/*Flip*/
.flip-container {
-webkit-perspective: 1000;
position: fixed;
top: 50%;
left: 50%;
/* bring your own prefixes */
transform: translate(-50%, -50%);}
.flip-container:hover .flipper, .flip-container.hover .flipper {
-webkit-transform: rotateY(180deg);}
.flip-container, .front, .back {
width: 900px;
height: 550px;}
.flipper {
-webkit-transition: 0.6s;
-webkit-transform-style: preserve-3d;
position: relative;}
.front, .back {
-webkit-backface-visibility: hidden;
position: absolute;
top:0;
bottom: 0;}
.front {
z-index: 2;}
.back {
-webkit-transform: rotateY(180deg);
background: white;}

<div class="flip-container">
<div class="flipper">
<div class="front">
<div class="container">
<div class="left-div">
<p class="content-name">title</p>
<p class="content-title">name</p>
<p class="content-description">Sed ut perspiciatis unde omnis iste natus <br/> error sit voluptatem accusantium doloremque laudantium, totam rem aperiam.</p>
<a href="#" class="content-link">Link</a>
</div>
<div class="right-div">
</div>
</div>
</div>
<div class="back">
:p
</div>
</div>
</div>
&#13;
答案 0 :(得分:2)
卡的背面应该有180度的变换。由于它是背面,它已经翻转了180度。对于我在Firefox 60中,即使scale(0.75)
应用于.container
,这仍然可以正常工作。换句话说,我无法重现你说的问题,但我确实注意到你的卡不像卡片那样。
@import url('https://fonts.googleapis.com/css?family=Playfair+Display:400,400i,700,700i,900,900i');
@import url('https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i,800,800i');
html,
body {
height: 100%;
width: 100%;
margin: 0;
padding: 0;
background-color: #eaeaea;
}
.container {
width: 900px;
height: 550px;
background-color: white;
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
margin: auto;
transform: scale(0.75);
}
.right-div {
width: 540px;
height: 550px;
background-image: url();
transform: scale(1);
background-position: -170px 0px;
background-size: cover;
position: absolute;
top: 0;
bottom: 0;
right: 0;
margin: auto;
}
.left-div {
width: 323px;
height: 550px;
background-color: white;
position: absolute;
top: 0;
bottom: 0;
left: 0;
margin: auto;
}
.content-name {
font-family: 'Open Sans', sans-serif;
letter-spacing: 3px;
font-size: 10px;
text-transform: uppercase;
color: #7E7E7E;
font-weight: 700;
margin-top: 160px;
margin-left: 40px;
}
.content-title {
font-family: 'Playfair Display', serif;
font-size: 44px;
letter-spacing: 3px;
font-weight: 700;
color: #2C2C2C;
margin-top: 10px;
margin-left: 40px;
}
.content-description {
margin-top: -20px;
font-family: 'Open Sans', sans-serif;
font-size: 13px;
color: #7e7e7e;
line-height: 22px;
margin-left: 40px;
}
.content-link {
position: absolute;
margin-top: 20px;
color: #2C2C2C;
font-family: 'Open Sans', sans-serif;
letter-spacing: 3px;
font-size: 11px;
text-transform: uppercase;
font-weight: 700;
text-decoration: none;
margin-left: 40px;
}
/*Flip*/
.flip-container {
perspective: 1000;
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
backface-visibility: visible;
}
.flip-container:hover .flipper {
transform: rotateY(180deg);
}
.flip-container,
.front,
.back {
width: 900px;
height: 550px;
}
.flipper {
transition: 0.6s;
transform-style: preserve-3d;
position: relative;
}
.front,
.back {
position: absolute;
top: 0;
bottom: 0;
}
.front {
backface-visibility: hidden;
background: white;
}
.back {
backface-visibility: hidden;
background: red;
/* this is the line you were missing */
transform: rotateY(180deg);
}
&#13;
<div class="flip-container">
<div class="flipper">
<div class="front">
<div class="container">
<div class="left-div">
<p class="content-name">title</p>
<p class="content-title">name</p>
<p class="content-description">Sed ut perspiciatis unde omnis iste natus <br/> error sit voluptatem accusantium doloremque laudantium, totam rem aperiam.</p>
<a href="#" class="content-link">Link</a>
</div>
<div class="right-div">
</div>
</div>
</div>
<div class="back">
:p
<h1> you have to put the snippet in fullscreen mode because this card is really big </h1>
</div>
</div>
</div>
&#13;
答案 1 :(得分:2)
我不知道这对您来说是否是一个很好的解决方法,但您可以尝试将transform: scale(0.75)
设置为.front
和.back
类,而不是{{1} }。
.container