css 添加悬停到节中的链接,影响除悬停元素之外的所有元素

gmxoilav  于 2023-03-20  发布在  其他
关注(0)|答案(1)|浏览(130)

由奥利弗解决

https://stackoverflow.com/users/20025773/oliver)在他回应的评论中,谢谢你的帮助和解决方案和解释的持续迭代!
...
原职务:
我正在尝试找到一种方法来添加悬停效果到一个链接在一个部分,当悬停,影响所有其他内容在该部分。例如,减少不透明度为0.2。
一个警告是,我将需要保留的能力,也添加特定的悬停效果的链接悬停,例如添加一个背景色(使用蓝色为例),保持原来的解决方案。
下面是我尝试使用的布局示例. HTML:

<ul id="text">

        <li>
          <a href="#">Whole line link</a>,
        </li>

        <li>
          <a href="#">Part line link</a>, and
        </li>

        <li>
          <a href="#">Link split over <br />
        Two lines</a>.
      </li>

        <li>
          Here's another <a href="#">Part line link,<br />
        Split </a>, again over two lines.
      </li>
 
      </ul>

所以,总的来说,如果我悬停其中的任何一个链接,我希望悬停的锚标记之外的所有内容的不透明度都降到0. 2,并且我只希望悬停的锚标记获得背景颜色。TYIA:-)
我尝试过使用has和not选择器,但是这些都超出了我目前的理解水平,对我来说是新的。我愿意接受任何可能的解决方案。我从类似的教程和类似的stackoverflow问题中获得了类似的代码,但无法使该元素适用于我的特定情况。然而,即使没有修复最初的问题,似乎这个解决方案也会遇到我问题的第二部分的问题-保留除悬停链接之外的所有内容的样式(将所有其他内容设置为不透明度0.2),同时允许我仅对悬停链接进行样式设置(将背景颜色设置为蓝色)
...
在一些答案和尝试解决后更新--大问题似乎是:

  • 当前兼容性在firefox为这has选择器,即使这标志是使能的.工作在chrome罚款.
  • 仅在<a>标签链接文本上具有悬停
  • <ul>中的所有元素上而不仅仅是<ul><a>标签链接文本上具有不透明度下降
  • 对悬停的<a>标签链接文本之外的所有元素具有不透明度下降,包括与悬停的链接文本相同的<li>内的其他非链接文本
c0vxltue

c0vxltue1#

你可以这样做:

ul:has(li a:hover) > li a:not(:hover) {
  opacity: 0.2;
}

你基本上会说:如果ul中有任何a位于悬停的任何li内部,则处于悬停的not的任何li内部的任何a应具有不透明度:0.2
希望能有意义!
下面是一个代码笔:https://codepen.io/raul-rogojan/pen/OJovqGd

相关问题