为了账号安全,请及时绑定邮箱和手机立即绑定

(PHP) 试图操纵包含函数

(PHP) 试图操纵包含函数

PHP
红糖糍粑 2022-07-09 10:01:14
我正在使用 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天了。
查看完整描述

2 回答

?
HUX布斯

TA贡献1876条经验 获得超6个赞

您需要检查您现在所在的页面$_SERVER['REQUEST_URI']。


试试这个快速而肮脏的解决方案:


<?php

   $class1 = '';

   $class2 = '';

   $class3 = '';


   $prefix = '/html/html_';


   if ($_SERVER['REQUEST_URI'] == $prefix.'default.php') {

       $class1 = 'current';

   } else if ($_SERVER['REQUEST_URI'] == $prefix.'editors.php') {

       $class2 = 'current';

   } else {

       $class3 = 'current';

   }

?>


<div class="sidenav">      

<h3> HTML Collection</h3> 

    <a class="<?= $class1 ?>" href="html_default.php">HTML Intro</a>  

    <a class="<?= $class2 ?>" href="html_editors.php">HTML Editors</a>  

    <a class="<?= $class3 ?>" href="html_basics.php">HTML Basics</a> 

</div>

这将比较当前文件路径是否匹配,然后将current其用作class-attribute 值。


顺便说一句,您不需要,style="cursor: pointer"因为当您有<a>标签时,每个浏览器都会显示手形图标。也请使用href标签而不是onclick让您的生活更轻松并完成 W3C 验证。


查看完整回答
反对 回复 2022-07-09
?
慕容708150

TA贡献1831条经验 获得超4个赞

另一种方法是只在每个页面上使用唯一的 id,并使用这些 id 来定位您的链接并添加适当的样式。


<body id='page_about'>

    <a id='nav_about' href='about.php'>About</a>

    <a id='nav_contact' href='contact.php'>Get in touch</a>

</body>

然后 CSS 类似:


#page_about #nav_about,

#page_contact #nav_contact

{

    text-decoration: none;

}

不需要逻辑。


请记住,如果您关闭了 CSS,则当前页面链接不会获得该样式。


查看完整回答
反对 回复 2022-07-09
  • 2 回答
  • 0 关注
  • 70 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信