【问题标题】:Absolute positioned elements losing position on active with filter [duplicate]绝对定位元素在使用过滤器的活动时失去位置[重复]
【发布时间】:2021-01-21 00:32:21
【问题描述】:

我遇到了以下我在以下示例中重新创建的奇怪情况:

.relative {
    position: relative;
}
.absolute {
    position: absolute;
    left: 50%;
    top: 100%;
}
a:active {
    filter: brightness(130%);
}
<div class="relative">
    <a href="//google.com"><img class="absolute" src="https://upload.wikimedia.org/wikipedia/commons/thumb/2/23/Sternbergia_lutea_showing_the_different_parts_of_the_flower.JPG/130px-Sternbergia_lutea_showing_the_different_parts_of_the_flower.JPG" /></a>
</div>

点击 mousedown 事件会触发具有 filter 属性的 :active 伪类,而图像会丢失其绝对位置,因此链接甚至不会被跟踪。我在任何地方都找不到任何关于它的信息,有人知道为什么会这样吗?

【问题讨论】:

    标签: html css


    【解决方案1】:

    我也不明白它的确切原因。但是,您要做的是将过滤器应用于 img 而不是标签。也许标签上的行为是未定义的:

    .relative {
        position: relative;
    }
    .absolute {
        position: absolute;
        left: 50%;
        top: 100%;
    }
    a:active img {
        filter: brightness(130%);
    }
    <div class="relative">
        <a href="//google.com"><img class="absolute" src="https://upload.wikimedia.org/wikipedia/commons/thumb/2/23/Sternbergia_lutea_showing_the_different_parts_of_the_flower.JPG/130px-Sternbergia_lutea_showing_the_different_parts_of_the_flower.JPG" /></a>
    </div>

    这样就解决了。

    【讨论】:

    • 谢谢,我知道如何避免这种情况,但问题仍然存在……我的例子是随机的,它发生在各种不同的情况下。而且我觉得不正常……
    • 嗯,事实证明这是重复的。答案在这里:stackoverflow.com/questions/52937708/…
    • 我应该删除问题吗? (我不熟悉这种情况下的程序)
    • 不需要 - 它现在已作为副本关闭。这比删除要好,因为有人可能会找到您的问题而不是前一个问题。
    • 好的,谢谢你的信息。
    猜你喜欢
    • 1970-01-01
    • 2014-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-16
    • 2021-12-21
    相关资源
    最近更新 更多