【问题标题】:css hover over li, blur all otherscss悬停在li上,模糊所有其他
【发布时间】:2010-11-10 14:40:30
【问题描述】:
<ul>
  <li>a</li>
  <li>b</li>
  <li>c</li>
  <li>d</li>
  <li>e</li>
</ul>

谁能告诉我,当用户将鼠标移到包含c 的元素上时,是否可以使用css 来模糊包含adeul 元素,而不使用JavaScript?

【问题讨论】:

  • 你不是说“模糊 li 元素”吗?在这种情况下,“模糊”是什么意思?

标签: html css


【解决方案1】:

与使用多个选择器相反,您可以使用:not 选择器将它们组合为一个。

ul:hover li:not(:hover) {
    opacity: .5;
}

这将在所有li 上设置opacity:.5,除了被悬停的那个。

jsFiddle here

【讨论】:

    【解决方案2】:

    你的意思是这样的:

    http://jsfiddle.net/S4TMS/

    HTML

    <ul>
        <li>a</li>
        <li>b</li>
        <li>c</li>
        <li>d</li>
        <li>e</li>
    </ul>
    

    CSS

    ul li {
        background-color: red;
        margin: 2px;
    }
    
    ul:hover li {
        opacity: .5;
    }
    
    ul li:hover {
        opacity: 1;
    }
    

    【讨论】:

    • 很好 :) 你甚至花时间制作了一个 jsfiddle 演示......我想你必须先弄清楚它是否真的有效,呵呵
    • +1 在 chrome 中测试过,效果很好 - 我猜它需要针对 其他 浏览器进行扩展
    • @amelvin 当然可以在其他浏览器中使用 :) 除了旧版本的 IE。
    • @ŠimeVidas - Netscape 4 也可能会遇到困难。
    • @amelvin 网景 4?你是说 97 年的那个?
    【解决方案3】:

    Here 是您追求的一个很好的例子。该代码示例演示了如何模糊除悬停元素之外的所有内容。

    【讨论】:

      【解决方案4】:

      您可以尝试something like this,由于text-shadow 属性,并非所有浏览器都支持:

      ul:hover li {
          text-shadow: 0px 0px 3px black;
          color: transparent;
      }
      
      ul:hover li:hover {
          text-shadow: none;
          color: black;
      }
      

      编辑:在上面添加了一个 jsfiddle 的链接,因为这显然是让你投票的一件很酷的事情。 :P

      【讨论】:

      • 不,速度让你投票 :) 我 +1 他,因为他的回答快了 20 秒。
      • 质量最终胜出,但并非总是如此:/
      猜你喜欢
      • 2021-02-21
      • 2012-07-15
      • 2015-02-02
      • 2013-08-28
      • 2013-09-08
      • 2018-09-14
      • 2015-10-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多