2012-05-03 140 views
0

因此,我正在編寫一個菜單,並希望它基於該頁面保持某種顏色。 我在頁面上添加了「class ='active'」,我嘗試將它添加到CSS,但它不起作用。有任何想法嗎?如何使用php + css更改活動菜單的樣式

PHP代碼:

<?php 
$currentPage = basename($_SERVER['REQUEST_URI']); 
print "<div id = 'submenu-container'>"; 
print "<div id = 'submenu'>"; 
print "<ul class = 'about'>"; 
print "  <li><a href='about.php#about_intro.php'if($currentPage=='about.php#about_intro.php' || $currentPage=='about.php') echo 'class='active''>About</a></li>"; 
print "  <li><a href='about.php#about_team.php'if($currentPage=='about.php#about_team.php') echo 'class='active''>Team</a></li>"; 
print "  <li><a href='about.php#about_services.php' if($currentPage=='about.php#about_services.php') echo 'class='active'>Services</a></li>";    
print " </ul>"; 
print "</div>"; 
print"</div>"; 
?> 

CSS:

#submenu ul li a .active { 
background:#FFF;  
} 

回答

1

$_SERVER['REQUEST_URI']永遠不會包含散列後的部分。它最多隻會顯示about.php以及任何通過?傳遞的網址參數。您應該爲每個頁面創建特定的頁面,在查詢字符串中提供about_intro/about_team/about_services而不是哈希,或者使用javascript添加活動類。

此外,不要在另一個語句中使用if語句。使用三元運算符。

print "<li><a href='about.php'" 
    .$currentpage=="about.php"?" class='active'":"" 
    .">About</a></li>"; 
+0

我將如何添加與JavaScript的活動類?對不起,我對JS沒有那種經驗,我一直選擇它,從未正式自學過。 – Andrew

1
print "  <li><a href='about.php#about_intro.php'if($currentPage=='about.php#about_intro.php' || $currentPage=='about.php') echo 'class='active''>About</a></li>"; 

沒有意義。所有這些字符串都將被輸出並顯示在html中。 你必須使用字符串連接:

$cl = ($currentPage=='about.php#about_intro.php' || $currentPage=='about.php')?" class='active'": ""; 
print "<li><a href='about.php#about_intro.php' $cl>About</a></li>";