0

我想知道如果链接都在同一页面上,是否可以在 PHP 中使用 basename 函数来回显链接的新 ID(以便我可以根据用户所在的位置设置它们的样式)?具体来说,我的网站是一个向下滚动的网站,所以一切都在一个页面上。我意识到如果我的网站有多个页面,您可以执行以下操作:

<?php $currentPage = basename($_SERVER['SCRIPT_FILENAME']); ?>
<ul>
    <li><a href="index.php" <?php if ($currentPage == 'index.php') {
                        echo 'id="here"';} ?>>HOME</a></li>

当然,您只需使用 CSS 设置“此处”样式以反映用户的当前页面。但是如果我使用锚标签呢?

<?php $currentPage = basename($_SERVER['SCRIPT_FILENAME']); ?>
    <ul>
        <li><a href="index.php" <?php if ($currentPage == 'index.php#home') {
                            echo 'id="here"';} ?>>HOME</a></li>

这不起作用。这可以使用PHP来完成吗?如果没有,是否有 JavaScript 方法可以做到这一点?提前致谢!

4

1 回答 1

0

片段不发送到服务器。服务器所知道的就是您在index.php.

但是,您可以使用:target伪类来识别片段中引用的元素。

因此,例如,如果我去http://example.com/index.php#section那个页面有:

<h1 id="section">Some title</h1>

和:

:target {background-color:#ccc;}

然后<h1>标签将被突出显示。

于 2012-12-13T21:03:39.507 回答