0

だから、私はメニューを書いていて、そのページにあることに基づいて特定の色を維持したい. ページに「class = 'active'」を追加し、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;    
}
4

2 に答える 2

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>";
于 2012-05-03T19:31:57.420 に答える
1

$_SERVER['REQUEST_URI']ハッシュの後の部分が含まれることはありません。about.phpとで渡された URL 引数のみが表示されます?。これらのそれぞれに特定のページを作成するか、ハッシュの代わりにクエリ文字列で about_intro/about_team/about_services を指定するか、javascript を使用してアクティブなクラスを追加する必要があります。

さらに、別のステートメント内で if ステートメントを使用しないでください。三項演算子を使用します。

print "<li><a href='about.php'"
    .$currentpage=="about.php"?" class='active'":""
    .">About</a></li>";
于 2012-05-03T19:29:14.380 に答える