CSS:锚链接悬停不起作用

时间:2016-12-29 10:32:48

标签: html css

我想要的是当我将鼠标悬停在锚元素上时,应该应用悬停类。但似乎它没有用。 h1元素位于锚元素内。因此,我必须使用h1选择a h1:hover元素,然后才应用此类。 唯一值得关注的是当我将颜色应用于h1然后悬停停止工作,否则效果很好。我不知道为什么会这样。有人可以帮忙吗?谢谢。 Code pen to play

HTML:

<a href="">
  <h1>This will not work on hover</h1>
</a>

CSS:

a, a:link{
  color: teal;
}
a:hover{
  color: salmon;
}

h1{
  color: magenta;
}
/* a h1:hover{
  color: salmon;
} */

a, a:link{
  color: teal;
}
a:hover{
  color: salmon;
}

h1{
  color: magenta;
}
/* a h1:hover{
  color: salmon;
} */
<a href="">
  <h1>This will not work on hover</h1>
</a>

5 个答案:

答案 0 :(得分:2)

CSS特异性并不像您想象的那样完全正常工作。

您可以在此处详细了解:https://www.smashingmagazine.com/2007/07/css-specificity-things-you-should-know/

关于您可以更改的问题:

a:hover{
    color: salmon;
}

a:hover h1{
    color: salmon;
}

它将起作用,因为上面的选择器更具体来自:

h1{
   color: magenta;
}

因此,当a悬停时,它会覆盖它。

最后的html / css让你测试我说的话:

<a href="">
   Anchor Text
   <h1>Heading Text</h1>
</a>

a, a:link{
  color: teal;
}
a:hover{
  color: salmon;
}

a:hover h1{
  color: yellow;
}

h1{
  color: magenta;
}

答案 1 :(得分:0)

试试这个

<强> demo

<强> CSS

a, a h1:link{
  color: teal;
}
a h1:hover{
  color: salmon;
}

h1{
  color: magenta;
}
/* a h1:hover{
  color: salmon;
} */

答案 2 :(得分:0)

试试这个

a, a:link{
  color: teal;
}
a:hover h1 {
  color: salmon;
}

h1{
  color: magenta;
}
<a href="#">
  <h1>This will not work on hover</h1>
</a>

答案 3 :(得分:0)

你也错过了#,我添加了一个css

a:hover h1{
 color: salmon;
}

a, a:link{
  color: teal;
}
a:hover{
  color: salmon;
}

a:hover h1{
  color: salmon;
}

h1{
  color: magenta;
}
/* a h1:hover{
  color: salmon;
} */
<a href="#">
  <h1>This will not work on hover</h1>
</a>

答案 4 :(得分:0)

尝试:

a, a:link{
  color: teal;
}
a:hover h1 {
  color: salmon;
}

h1{
  color: magenta;
}
/* a h1:hover{
  color: salmon;
} */
<a href="">
  <h1>This will not work on hover</h1>
</a>

希望这有帮助!