duanhuang7591 2015-02-27 03:11
浏览 23
已采纳

PHP网页导航和活动页面

i have template.php and i include navigation.php that in separate page to template i want when i navigate through my website pages to be the page i'm on to be active with css style i want to be linked to css page to take active style link for my links.

here my naviation.php page.

   <body>
  <?php 
    $directoryURI = $_SERVER['REQUEST_URI'];
    $path = parse_url($directoryURI, PHP_URL_PATH);
    $components = explode('/', $path);
    $first_part = $components[1];
     ?>

    <div id="navigation">
<div class="shell">
    <ul>
 <li class="<?php if ($first_part=="Home") {echo "active";  } else  {echo "noactive";}?>"><a href="Home.php"> <span>HOME</span></a></li>
 <li class="<?php if ($first_part=="About") {echo "active"; } else  {echo "noactive";}?>"><a href="About.php"> <span>ABOUT</span></a></li>
 <li class="<?php if ($first_part=="services") {echo "active"; } else  {echo "noactive";}?>"><a href="services.php"> <span>SERVICES</span></a></li>
 <li class="<?php if ($first_part=="Products") {echo "active"; } else  {echo "noactive";}?>"><a href="products.php"> <span>Products</span></a></li>
 <li class="<?php if ($first_part=="clients") {echo "active"; } else  {echo "noactive";}?>"><a href="clients.php"> <span>Clients</span></a></li>
 <li class="<?php if ($first_part=="contacts") {echo "active"; } else  {echo "noactive";}?>"><a href="contacts.php"> <span>CONTACT</span></a></li>
    </ul>
</div>

here is my css style.

#navigation { background:#4073b9 url(images/navigation.gif) left top repeat-x; height:50px; }
#navigation ul { list-style:none; }
#navigation ul li { float:left; height:42px; line-height:42px;}
#navigation ul li a { float:left; height:42px; line-height:42px; color:#fff; font-size:13px; font-weight:bold; text-decoration:none;  padding:0 0 0 33px;  }
#navigation ul li a span { float:left; height:42px; line-height:42px; padding:0 33px 0 0; }
#navigation ul li a:hover,
#navigation ul li a.active { background:url(images/navigation-active.gif) left top no-repeat; }
#navigation ul li a:hover span,
#navigation ul li a.active span { color:#4073b9; background:url(images/navigation-active.gif) right top no-repeat; }
   <body>
      <?php 
        $directoryURI = $_SERVER['REQUEST_URI'];
        $path = parse_url($directoryURI, PHP_URL_PATH);
        $components = explode('/', $path);
        $first_part = $components[1];
         ?>
        
        <div id="navigation">
    <div class="shell">
        <ul>
     <li class="<?php if ($first_part=="Home") {echo "active";  } else  {echo "noactive";}?>"><a href="Home.php"> <span>HOME</span></a></li>
     <li class="<?php if ($first_part=="About") {echo "active"; } else  {echo "noactive";}?>"><a href="About.php"> <span>ABOUT</span></a></li>
     <li class="<?php if ($first_part=="services") {echo "active"; } else  {echo "noactive";}?>"><a href="services.php"> <span>SERVICES</span></a></li>
     <li class="<?php if ($first_part=="Products") {echo "active"; } else  {echo "noactive";}?>"><a href="products.php"> <span>Products</span></a></li>
     <li class="<?php if ($first_part=="clients") {echo "active"; } else  {echo "noactive";}?>"><a href="clients.php"> <span>Clients</span></a></li>
     <li class="<?php if ($first_part=="contacts") {echo "active"; } else  {echo "noactive";}?>"><a href="contacts.php"> <span>CONTACT</span></a></li>
        </ul>
    </div>
</div>
    </body>

hope you can help me thank you.

</div>
  • 写回答

1条回答 默认 最新

  • dpjpo746884 2015-02-27 03:38
    关注

    What I normally do is like this, it's easy and safe.

    header.php

    <div id="navigation">
        <ul>
            <li class="<?php if ($current_page=="home") {echo "active"; }?>"><a href="home.php"><span>HOME</span></a></li>
            <li class="<?php if ($current_page=="about") {echo "active"; }?>"><a href="about.php"><span>ABOUT</span></a></li>
            <li class="<?php if ($current_page=="services") {echo "active"; }?>"><a href="services.php"><span>SERVICES</span></a></li>
            <li class="<?php if ($current_page=="products") {echo "active"; }?>"><a href="products.php"><span>PRODUCTS</span></a></li>
            <li class="<?php if ($current_page=="clients") {echo "active"; }?>"><a href="clients.php"><span>CLIENTS</span></a></li>
            <li class="<?php if ($current_page=="contacts") {echo "active"; }?>"><a href="contacts.php"><span>CONTACT</span></a></li>
        </ul>
    </div>
    

    index.php (home)

    <?php
    $current_page = 'home';
    include('header.php');
    ?>
    
    /*rest of your page content follows */
    

    about.php

    <?php
    $current_page = 'about';
    include('header.php');
    ?>
    
    /*rest of your page content follows */
    

    and so on...

    And correct these lines in your CSS:

    Replace this:

    #navigation ul li a.active { ... }
    #navigation ul li a.active span { ... }
    

    With this:

    #navigation ul li.active a { ... }
    #navigation ul li.active a span { ... }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 centos7.9 IPv6端口telnet和端口监控问题
  • ¥120 计算机网络的新校区组网设计
  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 海浪数据 南海地区海况数据,波浪数据
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单