仅从锚元素子项中删除下划线

Con*_*eak 15 css css3

a标记包含子元素(如i标记)时,它仍然在悬停时应用下划线,我想知道i当有人将鼠标悬停在标记上时如何从标记中删除下划线a.

我正在使用的CSS:

a{
    display:block;
    text-decoration:none;
}
a i{
  color:#888;
  margin-left:5px;
}
a:hover{
    text-decoration:underline;
}
a:hover i{
    text-decoration:none !important;
}
Run Code Online (Sandbox Code Playgroud)

这是一个解释的小提琴:http: //jsfiddle.net/kkz66x2q/

i当您将鼠标悬停在链接上时,我只希望下划线仅在元素上为GONE .

Cha*_*mal 34

试试下面的css,

a:hover i{
    display: inline-block; <-- this is the trick
    text-decoration:none !important;
}
Run Code Online (Sandbox Code Playgroud)

演示

  • 你能解释这个高尚的伎俩吗? (4认同)
  • 对此进行解释,这是CSS规范的一部分,链接中的内联块不带下划线。您实际上甚至不需要`text-decoration:none!important;`行 (3认同)
  • 我也很好奇为什么会这样。有人能解释一下吗? (2认同)
  • 如果子元素需要是块级的怎么办? (2认同)