--- title: ':hover' slug: 'Web/CSS/:hover' tags: - CSS - CSS 伪类 translation_of: 'Web/CSS/:hover' ---

{{ CSSRef() }}

概要

:hover CSS伪类适用于用户使用指示设备虚指一个元素(没有激活它)的情况。这个样式会被任何与链接相关的伪类重写,像{{ cssxref(":link") }}, {{ cssxref(":visited") }}, 和 {{ cssxref(":active") }}等。为了确保生效,:hover规则需要放在:link和:visited规则之后,但是在:active规则之前,按照LVHA的循顺序声明:link-:visited-:hover-:active。

:hover伪类可以任何伪元素上使用。{{experimental_inline}}

用户的可视客户端比如Firefox, Internet Explorer, Safari, Opera or Chrome, 会在光标(鼠标指针)悬停在元素上时提供关联的样式。

注意: 在触摸屏上 :hover 有问题,基本不可用。不同的浏览器上:hover 伪类表现不同。 可能从不会触发;或者在触摸某元素后触发了一小会儿;或者总是触发即使用户不在触摸了,直到用户触摸别的元素。 触摸屏非常普遍,所以网页开发人员不要让任何内容只能通过悬停才能展示出来,不然这些内容对于触摸屏使用者来说是很难或者说不可能看到。

语法

{{csssyntax}}

示例

:link:hover { outline: dotted red; }

.foo:hover { background: gold; }

下拉按钮

使用:hover 伪类可以创建复杂的层叠机制。一个常见用途,比如,创建一个纯CSS的下拉按钮(不使用JavaScript)。 本质是创建如下的CSS:

div.menu-bar ul ul {
  display: none;
}

div.menu-bar li:hover > ul {
  display: block;
}

HTML内容如下:

<div class="menu-bar">
  <ul>
    <li>
      <a href="example.html">Menu</a>
      <ul>
        <li>
          <a href="example.html">Link</a>
        </li>
        <li>
          <a class="menu-nav" href="example.html">Submenu</a>
          <ul>
            <li>
              <a class="menu-nav" href="example.html">Submenu</a>
              <ul>
                <li><a href="example.html">Link</a></li>
                <li><a href="example.html">Link</a></li>
                <li><a href="example.html">Link</a></li>
                <li><a href="example.html">Link</a></li>
              </ul>
            </li>
            <li><a href="example.html">Link</a></li>
          </ul>
        </li>
      </ul>
    </li>
  </ul>
</div>

CSS-based dropdown menu example 看示例.

可全图预览的画廊 

:hover 伪类可以让你实现一个当鼠标悬停在图片上时全图预览的画廊功能。 在 this demo 看示例。

注意: 一个类似的效果,是基于 :checked伪类(用于隐藏单选框)实现的,看 this demo,源于 En/CSS/:checked

规范

Specification Status Comment
{{ SpecName('CSS4 Selectors', '#hover', ':hover') }} {{ Spec2('CSS4 Selectors') }} Can be applied to any pseudo-element.
{{ SpecName('CSS3 Selectors', '#the-user-action-pseudo-classes-hover-act', ':hover') }} {{ Spec2('CSS3 Selectors') }} No significant change.
{{ SpecName('CSS2.1', 'selector.html#dynamic-pseudo-classes', ':hover') }} {{ Spec2('CSS2.1') }} Initial definition.

浏览器兼容性

{{Compat("css.selectors.hover")}}