【问题标题】:How to use 'hover' in CSS如何在 CSS 中使用“悬停”
【发布时间】:2010-10-28 15:34:36
【问题描述】:

我使用下面的代码来实现这个目标:

当鼠标悬停在锚点上时,下划线出现,

但它失败了,

    <a class="hover">click</a>

    a .hover :hover{
        text-decoration:underline;
    }

执行此操作的正确版本是什么?

【问题讨论】:

    标签: css hover anchor


    【解决方案1】:

    如果您希望鼠标悬停在链接上时出现下划线,则:

    a:hover {text-decoration: underline; }
    

    就足够了,但是如果您愿意,您也可以使用类名“悬停”,以下内容同样适用:

    a.hover:hover {text-decoration: underline; }
    

    顺便提一下,'hover' 的类名并没有真正为元素添加任何内容,因为a:hover 的伪元素与a.hover:hover 的伪元素做同样的事情。除非它只是一个使用类名的演示。

    【讨论】:

    • 谢谢 ricebowl,但是有没有什么方法可以让它对没有 href 属性的锚起作用?
    • 在 IE 中我的意思是,它在 firefox 中有效,但在 IE 中对于没有 href 属性的锚点无效。
    • 恐怕不行,IE(肯定是IE6,也许是IE7——我不记得了)限制了它对:hover的使用,所以只有标签可以使用它。 IE8 可能对此有所改进,但我不完全确定。
    • IE7+ 支持任意元素上的 :hover 伪类。
    【解决方案2】:

    有很多方法可以做到这一点。 如果你真的想在你的 A 元素中有一个“悬停”类,那么你必须这样做:

    a.hover:hover { code here }
    

    再一次,在那里有这样一个类名是不常见的,这就是你进行常规悬停的方式:

    select:hover { code here }
    

    这里还有几个例子:

    1

    HTML:

    <a class="button" href="#" title="">Click me</a>
    

    CSS:

    .button:hover { code here }
    

    2

    HTML:

    <h1>Welcome</h1>
    

    CSS:

    h1:hover { code here }
    

    :hover 是众多伪类之一。

    例如,您可以更改,当鼠标悬停在元素上时,您可以控制元素的样式,当它被点击时,以及当它之前被点击时。

    HTML:

    <a class="home" href="#" title="Go back">Go home!</a>
    

    CSS:

    .home { color: red; }
    .home:hover { color: green; }
    .home:active { color: blue; }
    .home:visited { color: black; }
    

    除了我作为示例给出的尴尬颜色之外,带有“home”类的链接默认为红色,鼠标悬停时为绿色,单击时为蓝色,单击后为黑色。

    希望对你有帮助

    【讨论】:

      【解决方案3】:

      不是答案,而是解释为什么您的 css 与 HTML 不匹配。

      在 css 中,空间用作分隔符,告诉浏览器查看子项,所以你的 css

      a .hover :hover{
         text-decoration:underline;
      }
      

      表示“查找一个元素,然后查找它的任何具有悬停类的后代,并查找具有悬停状态的那些后代的任何后代”并且将匹配此标记

      <a>
         <span class="hover">
            <span>
               I will become underlined when you hover on me
            <span/>
         </span>
      </a> 
      

      如果你想匹配a class="hover">I will become underlined when you hover on me</a>,你应该使用a.hover:hover,意思是“寻找任何具有类悬停和悬停状态的元素”

      【讨论】:

        【解决方案4】:

        a.hover:悬停

        【讨论】:

          【解决方案5】:
          a.hover:hover {
              text-decoration:underline;
          }
          

          【讨论】:

            【解决方案6】:

            您需要连接选择器和伪选择器。您还需要一个样式元素来包含您的样式。大多数人使用外部样式表有很多好处(缓存一个)。

            <a class="hover">click</a>
            
            <style type="text/css">
            
                a.hover:hover {
                    text-decoration: underline;
            
                }
            
            </style>
            

            请注意:hover 类不是必需的,除非您仅定义某些链接以具有此行为(可能是这种情况)

            【讨论】:

            • 但它在 IE8 中不起作用,也许我使用了一个带有“-”的类名?说 a.hover-link:hover ?
            • 连字符 (-) 在 CSS 中的类名中很好。要使上面的选择器起作用,您的元素必须看起来像 click 然后将鼠标悬停在该链接上。
            • 谢谢 alex,但是有没有什么方法可以使它适用于没有 href 属性的锚点?
            • 它应该适用于没有 href 属性的锚点。我可以问你为什么省略它吗?
            • 因为如果加了href,即使光标不在,下划线也会出来,我还不知道原因..
            【解决方案7】:

            href 是锚元素的必需属性,因此如果没有它,您就不能期望所有浏览器都能平等地处理它。无论如何,我在评论中的某处读到,您只希望在悬停时给链接加下划线,而不是在其他地方加下划线。您可以使用以下方法来实现此目的,它仅适用于具有 hover 类的链接:

            <a class="hover" href="">click</a>
            
            a.hover {
                text-decoration: none;
            }
            
            a.hover:hover {
                text-decoration:underline;
            }
            

            【讨论】:

              【解决方案8】:

              你应该使用过:

              a:hover {
                  text-decoration: underline;
              }
              

              hover 是 CSS 中的伪类。无需分配课程。

              【讨论】:

              【解决方案9】:

              我上次正在处理一个不错的缺陷,想知道更多关于如何正确使用 A 标签链接和 IE 浏览器的悬停属性。 对我来说奇怪的是,IE 无法基于简单的 A 选择器捕获 A 标签链接元素。 因此,我发现了如何强制捕获 A 标签元素,并且发现我们必须使用更具体的 CSS 选择器。下面是一个示例 - 效果很好:

              li a[href]:hover {...}
              

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2021-04-27
                • 2012-04-29
                • 2020-12-31
                • 2010-12-22
                • 1970-01-01
                • 1970-01-01
                • 2016-07-23
                • 1970-01-01
                相关资源
                最近更新 更多