html - 为什么这个元素选择自己?

标签 html css css-selectors

我试图突出显示悬停元素之前的列表元素。

<ul>
    <li><a href="#">link</a></li>  <!-- this one should be highlighted when... -->
    <li><a href="#">link</a></li>  <!-- ...this one is hovered -->
    <li><a href="#">link</a></li>
    <li><a href="#">link</a></li>
</ul>

但是,我正在使用的选择器 li + li:hover 出于某种原因正在选择自身。 li:hover + li 立即选择 li following 悬停的那一个,但我需要 紧接着的 .我是否使用了错误的选择器?

这是一个 fiddle演示问题:

最佳答案

CSS 组合器只能访问后代和后来的 sibling 。他们无法访问以前的。

一旦 CSS4 出现,您可以这样做:

!li! + li:hover

(注意:据我所知,语法尚未最终确定)

然而,与此同时,试试这个:

ul, ul>li {transform:scaleY(-1)}

并反转列表中元素的顺序。

Demo

关于html - 为什么这个元素选择自己?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17623289/

相关文章:

html - 文本位置不正确(水平菜单)

html - 如何选择一行中的第一个 TD 元素

css - 一个选择器有两个过滤器

html - 为什么第二个 child 会受到我第一个 child 颜色属性的影响?

html - 为什么<p>标签和<p1>标签的背景颜色不一样?

html - 与 z-index 相关的 Css 菜单/子菜单问题

css - AngularJS:如何在某些情况下添加两个不同的类?

javascript - CSS悬停动画不起作用

html - 如何在访问/激活子元素时更改父元素的颜色

python - 我如何使用 Beautifulsoup 获取 url 地址