html - 元素 + 元素无法访问 :before pseudo

标签 html css sass css-selectors

我遇到这样一种情况,我有两个元素在 DOM(邻居)中处于同一级别。当我悬停在 DOM 中之前的元素时,我希望显示它下面的元素。我还想访问我正在显示的元素的子元素并显示其 :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

最佳答案

好的,答案是 css 确实访问了 :before 元素。事情是当我想用鼠标访问下拉菜单时,我不再真正悬停触发器了。当我将鼠标悬停在父项上时,我一直在悬停触发器(整个父项)。

关于html - 元素 + 元素无法访问 :before pseudo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46976836/

相关文章:

html - 需要有关电子邮件模板 CSS 样式的帮助

html - 使简单布局适应 Safari Mobile (iPhone) 的 CSS 技巧

html - 容器中的 CSS 列超过列数

html - HTML 按钮上的背景悬停更改

CSS选择器以匹配数字大于的类

php - 如何更改我的 php 的颜色和字体大小?如果我尝试,它不起作用

html - Bootstrap 字形图标不起作用

javascript - 加载动画出现在滚动条上方

css - Joomla 3 全局配置缺少 css

css - 不兼容的单位 : 'rem' and 'px' with bootstrap 4 alpha 6