CSS导航:当鼠标悬停在图标上时,图标应替换为文本链接

时间:2013-05-24 03:18:48

标签: css navigation hover

我的导航栏中有这样的图标(http://d.pr/i/NP2T)。当我将鼠标悬停在一个图标上时,我希望图标消失并显示该列表项的链接文本(http://d.pr/i/Vd7i)。

这是我的HTML:

<div id="npnav">
  <ul>
    <li class="current music"><a href="#">Music</a></li>
    <li class="art"><a href="#">Art</a></li>
    <li class="goods"><a href="#">Goods</a>/li>
    <li class="blog"><a href="#">Blog</a></li>
  </ul>
</div>

这是我的CSS:

#npnav ul {
list-style:none;
padding-top:15px;
}

#npnav li {
display:inline-block;
padding:10px;
text-decoration:none;
font-weight:bold;
max-width:60px;
max-height:60px;
}

#npnav li a {
visibility: hidden;
}

#npnav li a:hover {
visibility: visible;
}


li.music {background:url('/images/headphone_icon.png') center center no-repeat; }
li.music:hover {background:none;}
li.art {background:url(img/nav-aboutHover.gif) center center no-repeat;}
li.art:hover {background:none;}
li.goods {background:url('/images/anchor_icon.png') center center no-repeat;}
li.goods:hover {background:none;}
li.blog:hover {background:url('/images/blog_icon.png') center center no-repeat;}
li.blog:hover {background:none;}

我很感激任何帮助,因为我无法找到任何教程用文本替换悬停。感谢。

3 个答案:

答案 0 :(得分:1)

一个选项是在每个<a>内添加一个额外的跨度,为其提供所需的背景图像,并将其绝对放在链接文本上(将链接设置为position:relative)。在悬停时,将跨度的位置设置为向左移动以将其移出屏幕。

答案 1 :(得分:1)

鉴于此HTML:

<div id="npnav">
  <ul>
    <li class="current music"><a href="#">Music</a></li>
    <li class="art"><a href="#">Art</a></li>
    <li class="goods"><a href="#">Goods</a>/li>
    <li class="blog"><a href="#">Blog</a></li>
  </ul>
</div>

假设图标是li的背景图片,你可以拥有这个CSS:

.current.music { background-image: url(someImageUrl); }
.art { background-image: url(someImageUrl); }
/* etc */

#npnav li a {
    display: none;
}

#npnav li:hover {
    background-image: none;
}

#npnav li:hover a {
    display: inline;
}

答案 2 :(得分:1)

尝试将CS​​S修改为类似的内容 -

#npnav ul {
    list-style:none;
    padding-top:15px;
}

#npnav li {
    display:inline-block;
    padding:10px;
    text-decoration:none;
    font-weight:bold;
    width:60px;
    height:60px;
}

#npnav li a {
    display:block;/*Ensure link covers the full space of the li */
    text-indent: -9000px; /*hide text away to the left */
    line-height:60px;
}

#npnav li a:hover {
    text-indent: 0;/* Display the text on mouse over */
}


li.music {background:url('/images/headphone_icon.png') center center no-repeat; }
li.music:hover {background:none;}
li.art {background:url(img/nav-aboutHover.gif) center center no-repeat;}
li.art:hover {background:none;}
li.goods {background:url('/images/anchor_icon.png') center center no-repeat;}
li.goods:hover {background:none;}
li.blog:hover {background:url('/images/blog_icon.png') center center no-repeat;}
li.blog:hover {background:none;}