3d 过渡后将 div 置于最前面 - css
Bring div to the front after 3d transition - css
我有一张卡片,正面和背面都有信息,当用户将鼠标悬停在卡片上时,它会切换并显示背面的信息。它在 Firefox 中有效,但在 Chrome/Safari 中无效,在这些浏览器中,尽管我尝试使用 z-index 值,但背面的文本被阻止了。需要考虑的一件事是,允许卡片背面溢出容器,这是故意的。谁能告诉我其他两个浏览器需要包含哪些内容?
CSS是基于这个post:http://css3.bradshawenterprises.com/flip/
实施:https://jsfiddle.net/af75qzqm/
示例截图:
适用于 Firefox
不适用于 Chrome
#f1_container {
position: relative;
width: 250px;
height: 80px;
margin-left: 10px;
margin-right: 10px;
margin-bottom: 23px;
z-index: 0;
overflow: visible;
-webkit-perspective: 1000;
-moz-perspective: 1000;
-ms-perspective: 1000;
-o-perspective: 1000;
}
#f1_card {
position: relative;
width: 100%;
height: 100%;
background-color: #ffffff;
border: 3px solid transparent;
border-radius: 3px;
-webkit-box-shadow: 0 1px 1px #aaa;
transform-style: preserve-3d;
-webkit-transform-style: preserve-3d;
-webkit-transition: all 0.2s linear;
-moz-transform-style: preserve-3d;
-moz-transition: all 0.2s linear;
-ms-transform-style: preserve-3d;
-ms-transition: all 0.2s linear;
-o-transform-style: preserve-3d;
-o-transition: all 0.2s linear;
transition: all 0.2s linear;
z-index: 0;
}
#f1_container:hover #f1_card {
position: relative;
-webkit-transform: rotateY(180deg);
-moz-transform: rotateY(180deg);
-ms-transform: rotateY(180deg);
-o-transform: rotateY(180deg);
transform: rotateY(180deg);
z-index: -10;
}
#f1_container:hover {
z-index: 10;
}
#f1_container:hover .front {
z-index: 0;
}
.face {
position: absolute;
width: 100%;
height: 100%;
-webkit-backface-visibility: hidden;
-moz-backface-visibility: hidden;
-ms-backface-visibility: hidden;
-o-backface-visibility: hidden;
backface-visibility: hidden;
padding: 10px;
color: black;
}
.face.back {
position: absolute;
display: block;
-webkit-transform: rotateY(180deg);
-moz-transform: rotateY(180deg);
-ms-transform: rotateY(180deg);
-o-transform: rotateY(180deg);
transform: rotateY(180deg);
box-sizing: border-box;
height: auto;
text-align: left;
background-color: lightblue;
color: white;
z-index: 20;
}
<div id="f1_container">
<div id="f1_card">
<div class="front face">
Front
</div>
<div class="back face center">
Back
</div>
</div>
</div>
我从 #f1_card 中删除了背景颜色和边框样式,并将它们添加到 .face.front
https://jsfiddle.net/af75qzqm/2/
.face.front {
background-color: #ffffff;
border: 3px solid transparent;
border-radius: 3px;
-webkit-box-shadow: 0 1px 1px #aaa;
}
我有一张卡片,正面和背面都有信息,当用户将鼠标悬停在卡片上时,它会切换并显示背面的信息。它在 Firefox 中有效,但在 Chrome/Safari 中无效,在这些浏览器中,尽管我尝试使用 z-index 值,但背面的文本被阻止了。需要考虑的一件事是,允许卡片背面溢出容器,这是故意的。谁能告诉我其他两个浏览器需要包含哪些内容?
CSS是基于这个post:http://css3.bradshawenterprises.com/flip/
实施:https://jsfiddle.net/af75qzqm/
示例截图:
适用于 Firefox
不适用于 Chrome
#f1_container {
position: relative;
width: 250px;
height: 80px;
margin-left: 10px;
margin-right: 10px;
margin-bottom: 23px;
z-index: 0;
overflow: visible;
-webkit-perspective: 1000;
-moz-perspective: 1000;
-ms-perspective: 1000;
-o-perspective: 1000;
}
#f1_card {
position: relative;
width: 100%;
height: 100%;
background-color: #ffffff;
border: 3px solid transparent;
border-radius: 3px;
-webkit-box-shadow: 0 1px 1px #aaa;
transform-style: preserve-3d;
-webkit-transform-style: preserve-3d;
-webkit-transition: all 0.2s linear;
-moz-transform-style: preserve-3d;
-moz-transition: all 0.2s linear;
-ms-transform-style: preserve-3d;
-ms-transition: all 0.2s linear;
-o-transform-style: preserve-3d;
-o-transition: all 0.2s linear;
transition: all 0.2s linear;
z-index: 0;
}
#f1_container:hover #f1_card {
position: relative;
-webkit-transform: rotateY(180deg);
-moz-transform: rotateY(180deg);
-ms-transform: rotateY(180deg);
-o-transform: rotateY(180deg);
transform: rotateY(180deg);
z-index: -10;
}
#f1_container:hover {
z-index: 10;
}
#f1_container:hover .front {
z-index: 0;
}
.face {
position: absolute;
width: 100%;
height: 100%;
-webkit-backface-visibility: hidden;
-moz-backface-visibility: hidden;
-ms-backface-visibility: hidden;
-o-backface-visibility: hidden;
backface-visibility: hidden;
padding: 10px;
color: black;
}
.face.back {
position: absolute;
display: block;
-webkit-transform: rotateY(180deg);
-moz-transform: rotateY(180deg);
-ms-transform: rotateY(180deg);
-o-transform: rotateY(180deg);
transform: rotateY(180deg);
box-sizing: border-box;
height: auto;
text-align: left;
background-color: lightblue;
color: white;
z-index: 20;
}
<div id="f1_container">
<div id="f1_card">
<div class="front face">
Front
</div>
<div class="back face center">
Back
</div>
</div>
</div>
我从 #f1_card 中删除了背景颜色和边框样式,并将它们添加到 .face.front
https://jsfiddle.net/af75qzqm/2/
.face.front {
background-color: #ffffff;
border: 3px solid transparent;
border-radius: 3px;
-webkit-box-shadow: 0 1px 1px #aaa;
}