Siteyi kontrol ve sonra CSS stilini karar?

4 Cevap php

I aim to have a similar Bar at the top as here: http://www.keltainenporssi.fi/ The colour of the current site is in red, while other sites are in black.

How would you reach my aim? Perhaps by php?

Pseudo-kod sözdizimi olabilir

if $site = A
    use-styleA
if $site = B
    use-styleB
else
    use-FinalStyle

4 Cevap

Dinamik olmayan bir yaklaşım:

Bunu gibi, her site için bir CSS kuralı kullanabilirsiniz:

/* site-one.css */
#top-nav li.site-one a {
    color: red;
}

/* site-two.css */
#top-nav li.site-two a {
    color: red;
}

/* site-three.css */
#top-nav li.site-three a {
    color: red;
}

HTML:

<ul id="top-nav">
    <li class="page-one"><a href="pages/one">Page one</a></li>
    <li class="page-two"><a href="pages/two">Page two</a></li>
    <li class="page-three"><a href="pages/three">Page three</a></li>
</ul>

Böyle bir şey yapmak için PHP gibi bir sunucu tarafı komut dosyası kullanımı yaygındır. Örneğin:

<?PHP

echo '<ul id="top-nav">';

foreach($page as $pageId => $text) {
    echo '<li';
    if($curPage == $pageId)
        echo ' class="active"';
    echo '>';
    echo '<a href="pages/' . htmlspecialchars($pageId) . '">';
    echo htmlspecialchars($text);
    echo '</a>';
    echo '</li>';
}

echo '</ul>';

?>

(Formatted for readability): Bu çıkışı gibi üretecek

<ul id="top-nav">
    <li><a href="pages/home">Home</a></li>
    <li class="active"><a href="pages/one">Page one</a></li>
    <li><a href="pages/two">Page two</a></li>
</ul>

Tüm etki getiriliyor olacak çubuğu için tek bir css olabilir. Eklemek! O css önemli kuralları bu kuralları başka bir şey ile değiştirileceğini değil bu yüzden emin olun. Aksi liste / div veya ne olursa olsun bunu uygulamak için kullanacağınız bir id ekleyerek bir "ad" çıtayı kalkan.

Evet, geçerli sitenin dayalı çapa elemanın sınıf atamak olabilir.