【问题标题】:CSS Hover on Elements with Transformation [Chrome/Webkit Bug]CSS 悬停在带有转换的元素上 [Chrome/Webkit 错误]
【发布时间】:2013-05-24 16:09:17
【问题描述】:

我有一个 div,我正在使用 CSS 对其进行转换。实际改造如下:

.trans{
  transform-origin: right center;
  transform: perspective( 600px ) rotateY( -30deg) translateZ(1px);
  -webkit-transform-origin: right center;
  -webkit-transform: perspective( 600px ) rotateY( -30deg) translateZ(150px);
}

据我所知,问题在于这会在页面的“后面”深度旋转 div。它正确显示,但似乎无法正确与鼠标交互。所以我的悬停状态的 CSS 类在这些元素上根本不起作用。

您可以查看reduced testcase。在结果窗格中,请注意左侧的正方形不会正确更改背景颜色,但右侧的正方形会正确更改背景颜色。这个错误发生在 Chrome 上,但在我测试时没有发生在 Firefox 或 IE 上。

关于如何解决这个问题有什么好的想法吗?

【问题讨论】:

    标签: css google-chrome webkit


    【解决方案1】:

    您必须为.trans 类声明一个display 属性才能使其工作。就是这样。

    这里是Working Solution

    HTML:

    <div class="square trans">
        <p>Text Here!</p>
    </div>
    <div class="square">
        <p>Text Here!</p>
    </div>
    

    CSS:

    .square{
        background-color: #ffffff;
        border-radius: 4px;
        border-color: #222222;
        border width: 6px;
        border-style: dotted;
        display:inline-block;
        float:left;
    }
    
    .trans{
        transform-origin: right center;
        transform: perspective( 600px ) rotateY( -30deg);
        -webkit-transform-origin: right center;
        -webkit-transform: perspective( 600px ) rotateY( -30deg);
        display:table-cell;
    
    }
    
    /* Doesn't work on transformed square! */
    .square:hover{
         background-color: #ff0000;
    }
    

    希望这会有所帮助。

    【讨论】:

    • 嗯,这似乎使它工作,虽然在我的实际用例中太长无法在此处发布,但它没有工作,所以我会寻找为什么会这样。奇怪的是,添加它对解决问题有什么作用?
    • 您可以通过上传来发送链接。 - @user1103976
    • 这里有一些与我所拥有的更相似的东西:jsfiddle.net/2scc3/1 有了这个,问题在于两边的正方形。我为糟糕的 CSS 道歉,没有真正的经验,我正在弥补,哈哈
    • 给你。找到工作解决方案jsfiddle.net/2scc3/2 完美地在 chrome 上工作。我希望这会有所帮助。
    • 谢谢!似乎运作良好。对您所做的工作有何解释,或者您只是将其归结为错误的解决方法?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-18
    • 2020-06-26
    • 1970-01-01
    • 1970-01-01
    • 2018-05-03
    • 2012-07-15
    相关资源
    最近更新 更多