Как иметь текущий выбор страницы с помощью inludes навигацию

Я использую php, включает для ограничения дублирования на моих страницах, как у меня может быть своя навигация, текущая страница выбрала с, говорят, что определенный цвет для кнопки "Домой", когда мою навигацию называют из header.php файла.

Если я должен был сказать, чтобы добавить "активный" класс к home.php объекту и добавить стиль, таким образом, он выглядел по-другому, который произойдет через управление по всем моим страницам, который является, почему я использую, включает во-первых, как у меня может быть один header.php файл с моей навигацией, которая также позволяет каждой странице способность показать текущую страницу, Вы идете отраженные в навигации?

Это - военно-морская часть header.php файла

  <ul>
 <li><a href="index.php">About Us</a></li>
 <li><a href="portfolio.php">Portfolio</a></li>
 <li><a href="news.php">News</a></li>
 <li><a href="contact.php">Contact</a></li>
    </ul>

Это - index.php файл, в который включен header.php файл

  <?php
   include("includes/header.php");
  ?>

 <div class="span-8" id="welcome">
  <p>Lorem ipsum</p>
 </div>

 <div class="span-16 last" id="slideshow">
  <img src="images/introImage1.png" alt="fountain">
  <img src="images/introImage2.png" alt="bench">
  <img src="images/introImage3.png" alt="bridge">
 </div>

 <?php
  include("includes/footer.php");
  ?>
1
задан Cool Guy Yo 13 May 2010 в 01:27
поделиться

3 ответа

Попробуйте следующее:

<ul>
<?php 
$pages = array('index.php' => 'About Us', 'portfolio.php' => 'Portfolio', 'news.php' => 'News', 'contact.php' => 'Contact');

foreach($pages as $url => $title) {
   $li = '<li ';
   if($_SERVER[ 'PHP_SELF' ] == $url) {
       $li .= 'class="active"';
   }
   $li .= '><a href="' . $url . '">' . $title . '</a></li>';
   echo $li;
}

?>
</ul>
2
ответ дан 3 September 2019 в 00:36
поделиться

Другой вариант - установить атрибут для тега body , а затем использовать согласованную пару для изменения стиля любого числа элементов.

Итак, на вашей главной ( домашней ) странице вы можете иметь:

<body id="home">
<a href="/" class="home">Home</a>
<a href="/about.htm" class="about">About Us</a>

Затем в вашем CSS:

body#home a.home , body#about a.about {
  color:#999;background-color:#000; }
0
ответ дан 3 September 2019 в 00:36
поделиться

И еще один вариант - включить один оператор CSS внутри самой страницы.

<style type="text/css">
  a[href="<?php echo basename( $_SERVER['PHP_SELF'] ); ?>"] ,
  a[href="<?php echo $_SERVER['PHP_SELF']; ?>"] {
  /* Styles for Current Page Links */ }
</style>

Конечно, это зависит от того, сможет ли браузер использовать этот селектор CSS.

И, если вы хотите быть полностью уверены в том, что все ссылки на файл покрыты (включая полные URI), включите также следующий селектор:

a[href="http<?php
  echo ( $_SERVER['HTTPS'] ? 's' : '' ).'://'.
    $_SERVER['HTTP_HOST'].(
      ( $_SERVER['HTTPS'] && $_SERVER['SERVER_PORT']!=443 )
      || ( !$_SERVER['HTTPS'] && $_SERVER['SERVER_PORT']!=80 ) ?
      ':'.$_SERVER['SERVER_PORT'] : '' ).
    $_SERVER['PHP_SELF']; ?>"]

ОБНОВЛЕНО: Исправленные переменные PHP для использования.

0
ответ дан 3 September 2019 в 00:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: