我用过' include' php分隔我网站的标题。 所以,如果我需要更改标题中的导航菜单部分,而不是每个页面修复超过20页,我可以轻松修复。
我的问题是我想添加一个课程,“#current;'在导航按钮之一。 例如,如果我在' Home'页面,然后我想改变' Home'的字体颜色。按钮变红。 如果我转到'联系'页面,我想要'联系'按钮变为红色并希望' Home'按钮到正常颜色。
由于所有导航按钮代码都在header.html中。 如何添加课程' current',以便用户可以知道他们正在查看哪个页面?
提前致谢。
答案 0 :(得分:0)
如果您使用的是php,那么您可以像这样设置它。
1)为每个链接提供课程
<li class="home"><a href="home.php">Home</a></li>
<li class="about"><a href="about.php">About</a></li>
<li class="contact"><a href="contact.php">About</a></li>
注意:提供文件名&amp; classname相同(如果filename是home.php,那么此菜单的类是“home”)
2)在header.php中使用此代码。
<?php
$class = basename($_SERVER['REQUEST_URI'], '.php?' . $_SERVER['QUERY_STRING']);
/* This basename function returns filename from url. For example if url is http://www.example.com/home.php?id=15, then this will return "home" only. */
?>
<script type="text/javascript" src="jquery.min.js"> <!-- Link your jquery library -->
<script type="text/javascript">
$(document).ready(function(){
$(".<?php echo $class; ?>").addClass('current');
});
</script>
答案 1 :(得分:0)
我无法发表评论,因为我没有50个代表,但我做了一些研究并找到了这个链接How to have the class=“selected” depending on what the current page/url is。 $_SERVER['REQUEST_URI']
是此示例中使用的方法。因此,如果您需要进一步澄清,您也可以查看。
编辑:这个例子不需要JQuery。或者你可以试试这个:
<div class="menu">
<div id="whatever" class="whatever">
<ul>
<li><a href="index.php" <?php if (basename($_SERVER['PHP_SELF']) == "index.php") { ?> class="current" <?php } ?>>Home</a></li>
<li><a href="about.php" <?php if (basename($_SERVER['PHP_SELF']) == "about.php") { ?> class="current" <?php } ?>>About</a> </li>
</ul>
</div>
</div>
答案 2 :(得分:0)
这是一个非常基本且不安全的例子,只是为了让你有希望得到这个想法。
首先找出您所在的页面,也许您有一个名为page的URL参数,如index.php?page = home或index.php?page = contact。
<?php $page=$_REQUEST['page']; ?>
然后编写HTML:
<a href="index.php?page=home">Home</a><br>
<a href="index.php?page=contact">Contact</a>
现在将类检查添加到您的链接:
<a href="index.php?page=home" class="<?=($page=='home'?'current':'');?>">Home</a><br>
<a href="index.php?page=contact" class="<?=($page=='contact'?'current':'');?>">Contact</a>
(这使用花哨的内联IF语句,只是因为它们非常符合目的。如果你还不知道它们,我建议你阅读它们。)
如果您的$ page变量设置为“home”,这将生成HTML源代码,如下所示:
<a href="index.php?page=home" class="current">Home</a><br>
<a href="index.php?page=contact" class="">Contact</a>
您还可以将整个类分配包含在PHP检查中:
<a href="index.php?page=home"<?=($page=='home'?' class="current"':'');?>>Home</a><br>
<a href="index.php?page=contact"<?=($page=='contact'?' class="current"':'');?>>Contact</a>
这将生成如下的HTML源代码:
<a href="index.php?page=home" class="current">Home</a><br>
<a href="index.php?page=contact">Contact</a>
最实用的方法是简单地创建一个为您生成所有内容的小功能,例如这个:
<?php
function makeNavLink($pageName){
global $page;
$link='<a href="index.php?page='.$pageName.'"';
$link.=($page==$pageName?' class="current"':'').'>';
$link.=ucwords($pageName).'</a>';
return $link;
}
?>
这样您就可以像这样调用页面中的函数:
<?=makeNavLink("home");?><br>
<?=makeNavLink("contact");?>
如果您的网页是“联系人”,它也会使HTML输出看起来像这样:
<a href="index.php?page=home">Home</a><br>
<a href="index.php?page=contact" class="current">Contact</a>