我有3页。根据我所在的页面,我想更改活动类以反映这一点。
这3页是索引,博客和联系方式。它们每个都有子页面,就像Work有各种项目的PHP文件一样。博客有各种博客文章。联系人只是一个PHP联系表格。
我想根据这个人所处的内容,移动class =“active”。现在它在每个页面上都是硬编码的。
我的代码是:
<ul class="list-inline" id="menu">
<li class="active">
<a href="index.php">work</a>
</li><!--
--><li>
<a href="blog.php">blog</a>
</li><!--
--><li>
<a href="contact.php">contact</a>
</li><!--
--><li>
<a href="#"><img class="social" src="img/icon/icon-facebook.png" alt="facebook"></a>
<a href="#"><img class="social" src="img/icon/icon-twitter.png" alt="twitter"></a>
</li>
</ul>
答案 0 :(得分:1)
添加此PHP:
<?php #add class .active to current page
$directoryURL = $_SERVER['REQUEST_URI'];
$path = parse_url($directoryURL, PHP_URL_PATH);
$components = explode('/', $path);
$currentPage = preg_replace("/\\.[^.\\s]{3,4}$/", "", end($components));
if ($currentPage == "") {
$currentPage = "index";
}
function href($url) {
global $currentPage;
$path = explode('/', $url);
$page = preg_replace("/\\.[^.\\s]{3,4}$/", "", end($path));
echo 'href="' . $url . '"';
if ($page == $currentPage) {
echo 'active';
}
}
?>
将菜单调整为:
<li><a <?php href('about.php');?>>About</a></li>
* 这应该有效。 祝你好运
答案 1 :(得分:0)
<ul class="list-inline" id="menu">
<li<?php if ($_SERVER['SCRIPT_FILENAME'] == "index.php") { echo " class=\"active\""; } ?>>
<a href="index.php">work</a>
</li>
<li<?php if ($_SERVER['SCRIPT_FILENAME'] == "blog.php") { echo " class=\"active\""; } ?>>
<a href="blog.php">blog</a>
</li>
<li>
<a href="contact.php">contact</a>
</li>
<li>
<a href="#"><img class="social" src="img/icon/icon-facebook.png" alt="facebook"></a>
<a href="#"><img class="social" src="img/icon/icon-twitter.png" alt="twitter"></a>
</li>
</ul>
诸如此类
答案 2 :(得分:0)
有很多方法,其中之一就是这个方法:
<?php
$page = ''; // @TODO: assign with the right value
$work_class = $page == 'work' ? 'active' : '';
$blog_class = $page == 'blog' ? 'active' : '';
$contact_class = $page == 'contact' ? 'active' : '';
?>
<ul class="list-inline" id="menu">
<li class="<?=$work_class?>">
<a href="index.php">work</a>
</li><!--
--><li class="<?=$blog_class?>">
<a href="blog.php">blog</a>
</li><!--
--><li class="<?=$contact_class?>">
<a href="contact.php">contact</a>
</li><!--
--><li>
<a href="#"><img class="social" src="img/icon/icon-facebook.png" alt="facebook"></a>
<a href="#"><img class="social" src="img/icon/icon-twitter.png" alt="twitter"></a>
</li>
</ul>
为了获得更准确的答案,如果您提供了有关其余代码的更精确信息,那么这将非常有用。
答案 3 :(得分:0)
我会循环它..
<?php
$base = substr($_SERVER['PHP_SELF'],strrpos($_SERVER['PHP_SELF'], '/')-1); // Something like this to determine the current file such as 'blog.php'
$links = array();
$links['work'] = 'index.php';
$links['blog'] = 'blog.php';
// ..
foreach($links AS $name => $url)
{ ?>
<a href="<?php echo $url; ?>"
<?php if($base == $url) ?> class="active"<?php } ?>
><?php echo $name; ?></a>
<?php } ?>
您可以将活动类添加到包装li元素中。