(PHP) 试图操纵包含函数

我正在使用 include 函数将 sidenav.php 页面生成到我的其他网站页面中。这是 sidenav.php :

        <div class="sidenav">      
        <h3> HTML Collection</h3> 
        <a class="current" style="cursor: pointer;" onclick="window.location.href ='html_default.php';"> HTML Intro</a>  
        <a style="cursor: pointer;" onclick="window.location.href = 'html_editors.php';"> HTML Editors</a>  
    </div>

现在你可以看到我正在使用类:当前方法来突出显示我所在的页面。问题是因为我使用包含来生成该页面,它总是会突出显示每个页面的侧导航的第一行,即使我不在介绍页面中,您能帮我操作一下吗?我已经尝试了2天了。


红糖糍粑
浏览 71回答 2
2回答

HUX布斯

您需要检查您现在所在的页面$_SERVER['REQUEST_URI']。试试这个快速而肮脏的解决方案:<?php&nbsp; &nbsp;$class1 = '';&nbsp; &nbsp;$class2 = '';&nbsp; &nbsp;$class3 = '';&nbsp; &nbsp;$prefix = '/html/html_';&nbsp; &nbsp;if ($_SERVER['REQUEST_URI'] == $prefix.'default.php') {&nbsp; &nbsp; &nbsp; &nbsp;$class1 = 'current';&nbsp; &nbsp;} else if ($_SERVER['REQUEST_URI'] == $prefix.'editors.php') {&nbsp; &nbsp; &nbsp; &nbsp;$class2 = 'current';&nbsp; &nbsp;} else {&nbsp; &nbsp; &nbsp; &nbsp;$class3 = 'current';&nbsp; &nbsp;}?><div class="sidenav">&nbsp; &nbsp; &nbsp;&nbsp;<h3> HTML Collection</h3>&nbsp;&nbsp; &nbsp; <a class="<?= $class1 ?>" href="html_default.php">HTML Intro</a>&nbsp;&nbsp;&nbsp; &nbsp; <a class="<?= $class2 ?>" href="html_editors.php">HTML Editors</a>&nbsp;&nbsp;&nbsp; &nbsp; <a class="<?= $class3 ?>" href="html_basics.php">HTML Basics</a>&nbsp;</div>这将比较当前文件路径是否匹配,然后将current其用作class-attribute 值。顺便说一句,您不需要,style="cursor: pointer"因为当您有<a>标签时,每个浏览器都会显示手形图标。也请使用href标签而不是onclick让您的生活更轻松并完成 W3C 验证。

慕容708150

另一种方法是只在每个页面上使用唯一的 id,并使用这些 id 来定位您的链接并添加适当的样式。<body id='page_about'>&nbsp; &nbsp; <a id='nav_about' href='about.php'>About</a>&nbsp; &nbsp; <a id='nav_contact' href='contact.php'>Get in touch</a></body>然后 CSS 类似:#page_about #nav_about,#page_contact #nav_contact{&nbsp; &nbsp; text-decoration: none;}不需要逻辑。请记住,如果您关闭了 CSS,则当前页面链接不会获得该样式。
打开App,查看更多内容
随时随地看视频慕课网APP