php
  • css
  • 2012-05-03 21 views 0 likes 
    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と、?で渡されたURL引数だけを表示します。それぞれの特定のページを作成し、about_intro/about_team/about_servicesをハッシュではなくクエリ文字列に指定するか、javascriptでアクティブなクラスを追加する必要があります。

    また、別のステートメントの内部にある場合は、ifステートメントを使用しないでください。三項演算子を使用します。

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

    : あなたは文字列の連結を使用する必要がありますか?申し訳ありませんが、私は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で表示されます。私はJavaScriptを使用してアクティブなクラスを追加しますどのように

    $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>"; 
    
    関連する問題