微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

css – 删除下划线:hover:before

在以下示例中,我使用字体为我的导航创建图标:
http://www.blackcountrydesigns.co.uk/examples/green/

我遇到的问题是,当您将鼠标悬停在链接上时,您会在链接和图标上显示下划线.

我想知道如何删除图标上的下划线但将其保留在链接上.

这是我的代码

HTML
<ul class="hidden-phone">
         <li><a class="entypo-home" href="#">Home</a></li>
         <li><a class="entypo-briefcase" href="#">Services</a></li>
         <li><a class="entypo-picture" href="#">Portfolio</a></li>
         <li><a class="entypo-address" href="#">Contact</a></li>
</ul>

CSS
#nav ul li a {color:#ccc; margin-left: 25px;}
#nav [class*='entypo-'].active:before {color:#666;}
#nav [class*='entypo-']:before {font-size: 46px; position: relative; top: 5px;left: -3px; color:#999;}
[class*='entypo-']:hover:before {text-decoration:none !important;}

非常感谢

解决方法

我发现,从生成内容删除(通常)继承的样式的唯一方法是使用简化的演示(来自注释)给它位置:绝对:

a:link
{
    text-decoration: none;
    position: relative;
    margin-left: 1em;
}

a:hover
{
    text-decoration: underline;
}

a:before
{
    content: '#';
    position: absolute;
    right: 100%;
    top: 0;
    bottom: 0;
    width: 1em;
}

JS Fiddle demo.

当然,这种方法的缺点是要求将明确的宽度分配给生成内容(以及父元素的边距).

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。