如何在使用PHP时根据页面更改导航链接颜色

时间:2016-02-03 05:43:04

标签: php html css

我目前有7个页面都包含相同的导航。我希望在我进入相应页面时更改每种链接颜色。因此,如果我在主页,我希望Home链接是不同的颜色。唯一的事情是我使用PHP来包含我的导航。谁能告诉我怎么做到这一点?这是每个页面的代码。除了内容标签之间没有任何变化。

<?php
ob_start();
require 'core/database/connect.php';
?>
<!doctype html>
<html>
    <?php include 'includes/head.php'; ?>
    <body>
        <?php
        include 'includes/header.php';
        include 'includes/headline.php';
        include 'includes/nav.php';
        ?>
        <div class="content">
            <?php $pageTitle = 'Title | Home'; ?>

            <div class="container-title">
                <p>Home</p>
            </div>
        </div>
        <?php include 'includes/footer.php'; ?>
    </body>
</html>
<?php
$pageContents = ob_get_contents();
ob_end_clean();

echo_str_replace('<!--TITLE-->', $pageTitle, $pageContents);
?>

nav.php代码:

<div class="nav">
    <div class="nav-inner">
        <ul>
            <li>
                <a href="index.php">Home</a>
            </li>
            <li>
                <a href="page2.php">Page 2</a>
            </li>
            <li>
                <a href="page3.php">Page 3</a>
            </li>
            <li>
                <a href="page4.php">Page 4</a>
            </li>
            <li>
                <a href="page5.php">Page 5</a>
            </li>
            <li>
                <a href="page6.php">Page 6</a>
            </li>
        </ul>
    </div>
</div>

3 个答案:

答案 0 :(得分:2)

好的方法可以是,为每个页面添加标识符,检查并显示所选的类。此处的标识符为The data frame a b c 0 1.5 0.25 1.25 1 2.5 2.75 0.75 The mean value a 2.0 b 1.5 c 1.0 dtype: float64 The value after subraction of mean a b c 0 -0.5 -1.25 0.25 1 0.5 1.25 -0.25

is_home

你的nav.php看起来像这样

<?php
ob_start();
require 'core/database/connect.php';
$identifier='is_home';//This is for home, assign page_2 for Page 2 or whatevery you like and check on bnav page
?>
<!doctype html>
<html>
    <?php include 'includes/head.php'; ?>
    <body>
        <?php
        include 'includes/header.php';
        include 'includes/headline.php';
        include 'includes/nav.php';
        ?>
        <div class="content">
            <?php $pageTitle = 'Title | Home'; ?>

            <div class="container-title">
                <p>Home</p>
            </div>
        </div>
        <?php include 'includes/footer.php'; ?>
    </body>
</html>
<?php
$pageContents = ob_get_contents();
ob_end_clean();

echo str_replace('<!--TITLE-->', $pageTitle, $pageContents);
?>

答案 1 :(得分:0)

这可能不是完美的解决方案。但效果很好

在您的每个网页中说page1.php 像这样包括

include 'includes/nav.php?page=page1.php';

在你的nav.php 这样做

nav.php:::::

$active = $_GET['page'];
$pageArray = new Array("page1.php", "page2.php", ....);
$makeActive = "";
for($page in $pageArray){
if($active == $page)
$makeActive = "style='color:#F1F1F1'";
echo "<li>
           <a ".$makeActive." href='$page'>". $page ."</a>
      </li>"
}

答案 2 :(得分:0)

你可以使用这样的东西

<?php
    function currentPage($pageName){
        if (($pageName.".php") == basename($_SERVER['PHP_SELF'])){
            echo ' class="active"';
        }
    }
?>

此函数获取页面名称(例如&#34;第2页&#34;,&#34;第3页&#34; ...)并检查网址中的当前页面名称是否符合该名称,如果是,则回显class="active。 你必须在你的CSS中定义一个类,它可能是这样的:

a.active {
    color: #F00;
}

并且你的nav.php应该改为:

<div class="nav">
    <div class="nav-inner">
        <ul>
            <li>
                <a href="index.php"<?php currentPage("index"); ?>>Home</a>
            </li>
            <li>
                <a href="page2.php"<?php currentPage("page2"); ?>>Page 2</a>
            </li>
            <li>
                <a href="page3.php"<?php currentPage("page3"); ?>>Page 3</a>
            </li>
            <li>
                <a href="page4.php"<?php currentPage("page4"); ?>>Page 4</a>
            </li>
            <li>
                <a href="page5.php"<?php currentPage("page5"); ?>>Page 5</a>
            </li>
            <li>
                <a href="page6.php"<?php currentPage("page6"); ?>>Page 6</a>
            </li>
        </ul>
    </div>
</div>

这是第一种也许是最丑陋的方式,但它有效。 您可以优化此代码,仅将其用作提示。

有关basename的更多信息:http://php.net/manual/en/function.basename.php 有关$ _SERVER的更多信息:http://php.net/manual/en/reserved.variables.server.php