css を使用してフリップ カードを作成しています。ユーザーがカードをホバー/クリックすると、フリップして裏面の内容が表示されます。これは、IE9 を除くすべてのブラウザーで機能します。
li {
list-style-type: none;
}
.info-card {
float: left;
margin: 2% 1% 0% 1%;
padding: 5% 0% 5% 0%;
position: relative;
-webkit-perspective: 600px;
-ms-perspective: 600px;
-moz-perspective: 600px;
}
.info-card:hover .back {
-webkit-transform: rotateY(0deg);
-moz-transform: rotateY(0deg);
-ms-transform: rotateY(0deg);
}
.info-card:hover .front {
-webkit-transform: rotateY(180deg);
-moz-transform: rotatey(180deg);
-ms-transform: rotatey(180deg);
}
.front,
.back {
transition: -webkit-transform 1s;
-moz-transition: 1s;
transform-style: preserve-3d;
-webkit-transform-style: preserve-3d;
-ms-transform-style: preserve-3d;
-ms-transition: 1s;
-webkit-backface-visibility: hidden;
-moz-backface-visibility: hidden;
-ms-backface-visibility: hidden;
}
.front {
background-color: #fff;
overflow: hidden;
width: 364px;
height: 300px;
position: absolute;
opacity: .5;
}
.front h3 {
text-decoration: underline;
padding: 32px;
font-size: 32px;
text-align: left;
color: #6633cc;
line-height: 38px;
}
.back {
background-color: #6633cc;
width: 364px;
height: 300px;
-webkit-transform: rotateY(-180deg);
-moz-transform: rotateY(-180deg);
-ms-transform: rotateY(-180deg);
}
.back p {
color: #fff;
padding: 20px 0px 0px 20px;
font-size: 14px;
}
.back h6 {
font-weight: 200;
font-family: arial;
font-size: 22px;
color: #fff;
position: absolute;
text-align: left;
padding: 0px 20px 30px 20px;
bottom: 0;
}
.back h6 a {
color: #fff;
text-decoration: underline;
}
css ハックを使用しようとしていますが、ユーザーが前面の div にカーソルを合わせるまで、背面を非表示にすることはできません。
@media screen and (min-width:0\0) {
.back {
backface-visibility: hidden;<--DOESN'T WORK IN IE9
}
.front:hover {
display: none;
}
}
IE9 は css の 3D パースペクティブ機能をサポートしていないと思います。そのため、カードをホバーすると、カードの裏側を表示/非表示にすることができる可能性が高くなります。
JSFIDDLE: https://jsfiddle.net/uetno72t/4/