我一直在开发一个网站,利用css精灵导航栏。
已设置为活动的部分的css如下:
ul#navigation li#navigation-1 a
{
background:url(images/btn_navbar.png) no-repeat -1px 0;
width:90px;
}
ul#navigation li#navigation-1 a.current
{
background-position:-1px -90px;
}
ul#navigation li#navigation-1 a:active,ul#navigation li#navigation-1 a:hover
{
background-position:-1px -45px;
}
我使用以下HTML/PHP
为其他部分设置活动状态<li id="navigation-8"><a href="<?php $page = get_page_by_title('Contact'); echo get_permalink ($page ->ID); ?>" title="CONTACT" <?php if ( is_page('Contact')) { echo 'class="current"' ; } ?>><span>CONTACT</span></a></li>
问题是当前的"活动"部分仍然具有:hover属性,这会导致闪烁和不必要的活动状态移除,直到鼠标离开该部分。
理想情况下,我想简单地删除悬停属性为当前选定的部分。
这怎么可能?我可以使用jquery吗?
许多谢谢。罗伯特您可以为"current"链接指定psuedo类:
#navigation-1 a.current,
#navigation-1 a.current:hover,
#navigation-1 a.current:active {
background-position:-1px -45px;
}
我还建议你把这些样式放在其他#navigation-1 a
样式的下面,因为它们会覆盖从这些样式继承的样式。
我想指出的是,没有必要编写一个有两个id的选择器。id总是唯一的,所以甚至不需要指定一个元素,因为永远不会有两个id (有效的 html)。
这些都是相同的(假设你的标记保持不变,并且你没有未使用的css):
ul#navigation li#navigation-1{}
#navigation li#navigation-1{}
#navigation-1{}
给非当前链接也一个类:
if ( is_page('Contact'))
{ echo 'class="current"' ; }
else
{ echo 'class="notcurrent"' ;}
然后把css改成:
ul#navigation li#navigation-1 a.notcurrent:active,
ul#navigation li#navigation-1 a.notcurrent:hover
{
background-position:-1px -45px;
}