【问题标题】:element + element cant access :before pseudo元素+元素无法访问:伪之前
【发布时间】:2017-10-30 18:11:14
【问题描述】:

我有两个元素在 DOM(邻居)中处于同一级别。当我悬停在 DOM 之前的元素时,我希望显示它下面的元素。我还想访问元素的子元素 Im 显示并显示其 :before 伪元素。

SCSS

&__wrapper {
        display: table;
        table-layout: fixed;

        &:hover {

            + .filter-time__shortcuts {
                opacity: 1;
                visibility: visible;
                pointer-events: auto;
                transform: scale(1) translateY(0);

                .filter-time__shortcuts-list {
                    transform: scale(0.5);

                    &:before {
                        display: block;
                    }

                }

            }

        }

除了显示:before 伪元素外,一切正常。出于某种原因,它无法访问它,但它可以访问.filter-time__shortcuts-list。 当我将:hover 移动到两个元素的父元素时,它们都是子元素,并且不需要+ 选择器,它可以工作。这是怎么回事?

编译的 CSS

.filter-time__wrapper:hover + .filter-time__shortcuts .filter-time__shortcuts-list:before {
        display: block; }

编辑:https://codepen.io/riogrande/pen/vWExqN

【问题讨论】:

  • 请添加完整的测试用例,例如包含 HTML 并添加代码片段。
  • 除非我们能看到您的 HTML,否则我们无法判断您的 CSS 选择器是对还是错。
  • 你在 :before 元素上有content 样式吗?即使它是空白的,这也是必需的。
  • @delinear 是的,正如我所说,当我将鼠标悬停在父级上时这是有效的

标签: html css sass css-selectors


【解决方案1】:

好的,答案是 css 确实在访问 :before 元素。问题是当我想用鼠标访问下拉菜单时,我并没有真正悬停触发器。当我将鼠标悬停在父母身上时,我一直在悬停触发器(整个父母)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-17
    • 2016-08-14
    • 2012-06-20
    • 2011-12-10
    • 2013-10-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多