翻转父级时显示绝对定位图像

时间:2013-08-01 17:26:05

标签: css3 google-chrome

我在Chrome中遇到了一个奇怪的错误(在Firefox中运行正常),不知道如何修复它。

http://jsfiddle.net/GkXA7/1/当鼠标悬停在卡片上时,图片显示在卡片的背面翻转。但是,如果我从右边定位图像,它就不会发生!? http://jsfiddle.net/GkXA7/2/

HTML

<div class="flip-container">
    <div class="flipper">
        <div class="front card">
            <img width="40" height="40" src="http://images3.wikia.nocookie.net/__cb20120330024139/logopedia/images/d/d7/Google_Chrome_logo_2011.svg">
            <h3>Front</h3>
        </div>
        <div class="back card">
            <h3>Back</h3>
        </div>
    </div>
</div>

CSS

/* Flip Effect */
.flip-container {
    perspective: 1000;
    margin: 0 auto 20px;
}
/* flip the pane when hovered */
.flip-container:hover .flipper, .flip-container.hover .flipper {
    transform: rotateY(-180deg);
    -webkit-transform: rotateY(-180deg);
}
.flip-container {
    width: 400px;
    height: 200px;
}
/* flip speed goes here */
.flipper {
    transition: 0.6s;
    transform-style: preserve-3d;
    position: relative;
    -webkit-transform-style: preserve-3d;
}
/* hide back of pane during swap */
.flipper .card {
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    text-align: center;
    position: absolute;
    top: 0;
    left: 0;
    width: 400px;
    height: 200px;
}
.flipper .front{
    background-color:green;
}
.flipper .back{
    transform: rotateY(-180deg);
    -webkit-transform: rotateY(-180deg);
    background-color:red;
}
.front img{
    position: absolute;
    top:10px;
    left:10px;
}

有没有办法防止图像出现在翻转面,同时仍然可以绝对定位?

1 个答案:

答案 0 :(得分:1)

图像几乎与背面位于同一z位置,因此有时显示,有时则不显示。

请参阅corrected fiddle

我刚刚改变了:

.flipper .back{
    transform: rotateY(-180deg)  translateZ(-1px);
    -webkit-transform: rotateY(-180deg) translateZ(-1px);
    background-color:red;
}

1个像素有所作为!

似乎误读了你的要求,而你想要的恰恰相反。

first fiddle corrected

当然现在我将像素翻译成正面!

一方显示另一方面的最终原因不是180度旋转实际上有点少,比如179.99度。因此,右侧有点“向下”,左侧有点“向上”

相关问题