2017-12-02 6 views
-1

私はPHPでセマンティックUIを使用してウェブサイトを作成していますが、マイナーな問題があります。セマンティックUIを使用しているかどうかに関係なく、この問題は解決できると思います。なぜなら、すべてのフレームワークに共通すると思うからです。PHPでアクティブなCSSクラスを使用

私は<head><nav>を含むすべてのHTMLを格納するheader.phpを持っています。そして、すべてのサイトで 'include header.php'を使用しています。だから私の問題は、現在のウェブサイトで、CSSクラス「アクティブ」(ユーザーが現在いるサイトにマークを付ける)を使用できないことです。<nav>はすべてのウェブサイトで同じになるからです。

誰にも解決策がありますか?

+0

'header.php'は、PHPが含まれています。ロジックを追加して、どこでも完全に同一ではありません。 – Quentin

+0

しかし、私はCSSのアクティブクラスを除いて、同じであることを望みます。 – Nifel

+0

それでは、違うようにコードを書く必要があります。 – Quentin

答えて

0

1つのオプションは、ヘッダーをエコーする関数を追加することです。この関数は、あなたがどのページにいたのかを言うことができるパラメータを取ることができ、Ifステートメントを使用して、どのナビゲーションリンクがクラス「アクティブ」を適用するかを知ることができます。

機能は次のようになります。

function header_html($page){ 
    result = ""; 
    //add other header info to result 
    $result.="\n<a href=\"page1.php\" "; 
    $result.= $page == "page1.php" ? "class=\"active\"" : ""; 
    $result.=">Page 1</a>"; 

    $result.="\n<a href=\"page2.php\" "; 
    $result.=$page == "page2.php" ? "class=\"active\"" : ""; 
    $result.=">Page 2</a>"; 
    //repeat as needed 

    //add other closing header tags 
    echo $result; 
} 

あなたのPHPは次のよ​​うになります。

<?php 
include header.php; 
header_html("page1.php"); 
?> 
+0

恐ろしい!ありがとうございました! – Nifel

関連する問題