CSS Sprites和PHP使用动态菜单突出显示不使用循环功能

时间:2011-06-11 21:39:10

标签: php html css wordpress

在这个网站上: http://jumpthru.net/newsite/vision/

我使用CSS sprites进行导航,使用PHP else语句来显示当前页面的活动状态。除了包含循环/博客帖子的页面(http://jumpthru.net/newsite/commentary/

之外,所有页面都正常工作

我是否需要以不同的方式为此页面调用php?

PHP:

<?php
if ( is_page('vision') ) { $current1 = 'visionside a'; }
elseif  ( is_page('team') ) { $current2 = 'teamside a'; }
elseif  ( is_page('commentary') ) { $current3 = 'blogside a'; }
elseif  ( is_page('organizations') ) { $current4 = 'orgside a'; }
?>

CSS:

#sidebarnav ul#sidenav li.<?php echo $current1; ?> {
background:url(http://jumpthru.net/newsite/wp-content/themes/twentyten/images/side/vision2.png)  0px -106px !important;

}

#sidebarnav ul#sidenav li.<?php echo $current2; ?> {
background:url(http://jumpthru.net/newsite/wp-content/themes/twentyten/images/side/team2.png)  0px -106px !important;

}

#sidebarnav ul#sidenav li.<?php echo $current3; ?> {
background:url(http://jumpthru.net/newsite/wp-content/themes/twentyten/images/side/content2.png)  0px -106px !important;

}

#sidebarnav ul#sidenav li.<?php echo $current4; ?> {
background:url(http://jumpthru.net/newsite/wp-content/themes/twentyten/images/side/org2.png)  0px -106px !important;

}

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:2)

我的解决方案与您所寻求的解决方案略有不同,但对您正在做的事情来说是一个更好的解决方案。

PHP:

<?php 

if ( is_page('vision') ) 
  $page = 'vision';
elseif ( is_page('team') )
  $page = 'team';
elseif ( is_page('commentary') )
  $page = 'blog';
elseif  ( is_page('organizations') ) 
  $page = 'org';

?>

<body id="page-<?php echo $page; ?>">
...

关于以上PHP的注意事项:如果您有get_page_id()函数,则可以进一步简化此操作。只需拥有<body id="page-<?php get_page_id(); ?>">

即可

HTML:

<ul id="sidenav">
    <li class="visionside"><a href="#">...</a></li>
    <li class="teamside"><a href="#">...</a></li>
    <li class="blogside"><a href="#">...</a></li>
    <li class="orgside"><a href="#">...</a></li>
</ul>

CSS:

body#page-vision #sidenav li.visionside a,
#sidenav li.visionside a:hover {
   ...
}

关于CSS的注意事项:上面列出的两行可以一起设置样式 - 当前状态和悬停状态。当您将鼠标悬停在导航栏上时,这将使当前状态显示,无论哪个导航是“当前”导航。

看到您对使用CSS Sprites感兴趣,我绝对建议您阅读this article