Inludes navigasyon kullanarak görümü seçim var nasıl

3 Cevap php

Ben php kullanıyorum seçilen geçerli sayfa benim navigasyon header.php dosyasından denir ANA düğmesi için belirli bir renk demek var benim navigasyon var, nasıl benim sayfalarında fazlalık sınırlamak için içerir.

I home.php öğeye bir "aktif" sınıfını eklemek ve farklı baktım bir stil eklemek için söyleyecek olsaydı, bu, ilk etapta içerir ben kullanıyorum bu yüzden tüm sayfaları için yönüyle olur nasıl ben de her sayfa size navigasyon yansıyan üzerinde geçerli sayfayı göstermek için yeteneği verir benim navigasyon ile bir header.php dosyasına sahip olabilir?

Bu header.php dosyasının nav kısmıdır

  <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>

Bu header.php dahil index.php dosyası

  <?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");
  ?>

3 Cevap

Bu deneyin:

<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>

Başka bir seçenek body etiketi karşı bir nitelik, ve daha sonra elemanlarının herhangi bir sayı stilini değiştirmek için bir eşleşen çifti kullanmak olacaktır.

Yani, ana (home) sayfasında, şunlar olabilir:

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

Sonra, CSS içinde var:

body#home a.home , body#about a.about {
  color:#999;background-color:#000; }

Ve yine başka bir seçenek gerçek sayfa içinde tek bir CSS include ifadesi olacaktır.

<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>

Tabii ki, o CSS Seçicimizi kullanmak için güçlü olmak tarayıcıda bağlıdır.

Eğer dosyadaki tüm bağlantıları (tam URI'lerinin dahil) kapalı olduğundan tamamen emin olmak istiyorsanız eğer, o zaman da aşağıdaki seçici içerir:

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']; ?>"]

UPDATED: Kullanmak için PHP Değişkenler düzeltildi.