0

我正在创建一个小导航系统,虽然我会尝试使用 CSS 精灵...

我的HTML如下

<ul>
 <li><i class="collections"></i><a href="collections.html">My Collections</a></li>
 <li><i class="everything"></i><a href="everything.html">Everything</a></li>
 <li><i class="social"></i><a href="social.html">Social</a></li>
 <li><i class="news"></i><a href="news.html">News</a></li>
 <li><i class="shopping"></i><a href="shopping.html">Shopping</a></li>
 <li><i class="financial"></i><a href="financial">Financial</a></li>
 <li><i class="travel"></i><a href="travel">Travel</a></li>
 <li><i class="entertainment"></i><a href="entertainment">Entertainment</a></li>        
</ul>

我正在使用图标(正如 Twitter Bootstrap 所做的那样)。

我的 CSS 是

i { display: block;  background-image: url('../img/sprites.png'); background-repeat: no-repeat; background-position: top left; }

.entertainment:hover{ background-position: -32px 0; width: 16px; height: 11px; } 
.entertainment{ background-position: -58px 0; width: 16px; height: 11px; } 
.everything:hover{ background-position: -84px 0; width: 16px; height: 15px; } 
.everything{ background-position: -110px 0; width: 16px; height: 15px; } 
.collections:hover{ background-position: -136px 0; width: 16px; height: 16px; } 
.collections{ background-position: -162px 0; width: 16px; height: 16px; } 
.news:hover{ background-position: -188px 0; width: 16px; height: 16px; } 
.news{ background-position: -214px 0; width: 16px; height: 16px; } 
.shopping:hover{ background-position: -240px 0; width: 16px; height: 16px; } 
.shopping{ background-position: -266px 0; width: 16px; height: 16px; } 
.social:hover{ background-position: -313px 0; width: 16px; height: 16px; } 
.social{ background-position: -339px 0; width: 16px; height: 16px; } 
.travel:hover{ background-position: -365px 0; width: 16px; height: 16px; } 
.travel{ background-position: -391px 0; width: 16px; height: 16px; } 
.financial:hover{ background-position: -417px 0; width: 16px; height: 12px; } 
.financial{ background-position: -443px 0; width: 16px; height: 12px; } 

我遇到的问题是我希望图标在悬停时更改,但它只在<i>元素上进行。我有一些事情正在发生<li>并且<a>这一切都冲突。

有任何想法吗?

一个 JS 小提琴 - http://jsfiddle.net/sturobson/5t6XE/

4

1 回答 1

1

您在<i>标签上设置了 :hover 。尝试类似:

li:hover .financial{ // CSS rules.... }
于 2012-05-26T06:55:44.397 回答