1

ユーザーがリンクの href のページ内にいるときに色が適用されるナビゲーションを作成しようとしています。だから私は検索し、最良のアプローチは使用することだと思います:

$url = $_SERVER['REQUEST_URI'];

URL がナビゲーションの href と同じ場合、要素にクラスを挿入する必要があるという if ステートメントを作成する必要があり<a>ます。このクラスには、CSS を介して色が適用されます。

これが役立つ場合は、html を使用したナビゲーションがあります。

    <div id="categories">
                    <ul>
                        <li id="nav-quien"><a href="biografia.php">quien es</a>
                            <ul>
                                <li id="nav-biografia" class="drop1"><a href="biografia.php">biografia</a></li>
                                <li id="nav-curriculum" class="drop2"><a href="curriculum_todos.php">curriculum</a></li>
                            </ul>
                        </li>
                        <li id="nav-galeria" class="marginli"><a href="gallery.php">galeria</a>
                            <ul>
                                <li id="nav-gal-nat" class="drop3"><a href="gallery_natural.php">paisaje natural</a></li>
                                <li id="nav-gal-urb" class="drop4"><a href="gallery_urbano.php">paisaje urbano</a></li>
                            </ul>
                        </li>
                        <li id="nav-prensa" class="marginli"><a href="prensa.php">prensa</a></li>
                        <li id="nav-links" class="marginli"><a href="links.php">links</a></li>
                        <li id="nav-contacto" class="marginli"><a href="contacto.php">contacto</a></li>
                    </ul>
                </div> 
</div>

非常に便利だと思うので、 request_uri を使って wotk する方法を理解しようとしています。だからどんな助けも大歓迎です!

:)

4

3 に答える 3

1

私は通常、次のようなことをします:

<?php

function is_active($page) {
    return $_SERVER['REQUEST_URI'] == $page;
}
?>

<style>
.active_page {
    font-weight: bold;
}
</style>

<a class="<?php echo is_active('/biografia.php') ? 'active_page' : '' ?>" href="biografia.php">quien es</a>
于 2013-03-18T23:38:35.363 に答える
1
<?php
    function theUrl($link) {
        $uri = $_SERVER['REQUEST_URI'];
        if($link==$uri) {
            return 'class="active"';
        }
    }
?>

HTML

    <ul>
        <li><a href="" <?php echo theUrl('/index.php')?>>Home</a></li>
        <li><a href="" <?php echo theUrl('/about.php')?>>About</a></li>
        <li><a href="" <?php echo theUrl('/work.php')?>>Work</a></li>
        <li><a href="" <?php echo theUrl('/contact.php')?>>Contact</a></li>
    </ul>

これは、私のサイトで使用しているスクリプトの修正版です。(私のサイトのコードとの) 唯一の違いは、. ではなく最初のサブディレクトリをターゲットにuriすることです。これにより、内部に無限のページ/コンテンツを含めることができ、適切なメイン ナビゲーション リンクを強調表示したままにできます。(つまりwww.mysite.com/work/)

<a href="/work" <?php echo theUrl('work')?>>Work</a>
(you can't use URI for this technique)
于 2013-03-19T00:03:34.090 に答える
1

PHP Manualによると、 $_SERVER['REQUEST_URI'] は次を返します。

このページにアクセスするために指定された URI。たとえば、「/index.html」です。

したがって、各メニュー項目について、 $_SERVER['REQUEST_URI'] が href 文字列と一致するかどうかを確認する必要があります。

<li id="nav-quien"><a href="biografia.php"
<?php
    if($_SERVER['REQUEST_URI'] == "/biografia.php")
    {
        echo ' class="active" ';
    }
?>
>quien es</a>
于 2013-03-18T23:42:52.440 に答える