【问题标题】:Make <li> active with includes using PHP and CSS使用 PHP 和 CSS 使 <li> 处于活动状态
【发布时间】:2012-05-27 18:40:44
【问题描述】:

我使用这些文件作为我网站的基础:

menu.php:

$p = $_GET['p'];

switch($p)
{
    case "home":
        $p = "page/home.php";
    break;

    case "customers":
        $p = "page/customers.php";
    break;

    default:
        $p = "page/home.php";
    break;
}

<ul id='nav'>

   <li>Title</li>
    <ul>
        <li class="nav active"><a href="?p=home">Home</a></li>
        <li><a href="?p=customers">Customers</a></li>
    </ul>
</ul>

default.php:

<body>
 <div id='navcontainer'>
  <?php include ("menu.php"); ?>
 </div>

<div id='content'>
 <?php include ($p); ?>
</div>

style.css

#navcontainer {margin:0; padding:0; width:220px;float:left;}
#nav li {background:#36393D; color:#fff; padding:5px 3px 5px 20px; margin:4px;border-left:5px solid #3F4C6B;}
#nav ul li{display:block; padding:3px; background:#fff; color:#000;border:none; padding:3px 0 3px 30px;}
#nav ul li:hover, #nav ul li.active {background:#eee; cursor:pointer; border-left:5px solid #4096EE;padding:3px 0 3px 25px;}
#nav ul li a {text-decoration:none; color:#000;}

home.php 和所有页面:

<p>Hello world!</p>

我想知道是否可以让我的menu.php 根据当前访问的页面将&lt;li&gt; 项目上的类切换到nav active

有什么想法吗?

【问题讨论】:

  • javascript也可以。
  • 你有什么例子吗?

标签: php css class menu include


【解决方案1】:

仅使用 php,您可以创建一个额外的变量

<?php
  $p = $_GET['p'];
  $currentPageId = 0;

  switch($p)
  {
    case "home":
        $p = "page/home.php";
        $currentPageId = 1;    
    break;

    case "customers":
        $p = "page/customers.php";
        $currentPageId = 2;    
    break;

    default:
        $p = "page/home.php";
        $currentPageId = 1;    
    break;
  }
?>

<ul id='nav'>

   <li>Title</li>
    <ul>
        <li <?php if($currentPageId == 1) { echo 'class="nav active"'; } ?> ><a href="?p=home">Home</a></li>
        <li <?php if($currentPageId == 2) { echo 'class="nav active"'; } ?> ><a href="?p=customers">Customers</a></li>
    </ul>
</ul>

【讨论】:

    【解决方案2】:

    您可以在 REQUEST 中提供一些 id,然后添加:

    $id = $_GET['id']
    

    然后

    <li <?php if($id == your_id){ echo "class='nav visited'";} ?> >
    

    【讨论】:

      【解决方案3】:

      我找不到

      $p = $_GET['p'];
      

      工作。对我有用的是

      $p = $_SERVER[REQUEST_URI];
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-11-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多