在我的 html 页面中,我使用 PHP include 来插入我的站点范围的 header :
<?php include 'header.php'; ?>
这是 header.php 中的代码:
<div id="header">
<div id="navigation">
<ul>
<li><a href="index.php" class="active">home</a></li>
<li><a href="about_us.php" id="nav_about">about us</a></li>
<li><a href="competition.php" id="nav_competition">competition</a></li>
<li><a href="media.php" id="nav_media">media</a></li>
<li><a href="sponsors.php" id="nav_sponsors">sponsors</a></li>
<li><a href="contact_us.php" id="nav_contact">contact us</a></li>
</ul>
</div>
</div>
这是 HTML 文档 header 中的 CSS:
#nav_about { color:#4c005c; }
插入代码中的“事件”类用于更改该链接的颜色以表示您所在的页面。这个功能很好,因为“事件”是在链接到 html 文件的 CSS 文档中定义的。我想根据包含在哪个页面中修改特定链接的颜色。事实是,当我测试它时,该页面上的 CSS(定义#nav_about 的那个)不适用。不过,包含工作正常。
总而言之,我需要找到一种方法来修改站点范围的 HTML 片段,该片段是通过 PHP 插入的,包含在该页面上的 CSS。
我是 HTML 和 PHP 的新手,所以我认为这是缺乏知识。
最佳答案
根据您在 PHP 中所在的当前页面更改 HTML 元素类的简单方法可能如下所示:
<?php
$nav_links = array(
'/index.php' => array('id' => 'nav_home', 'label' => 'Home'),
'/about_us.php' => array('id' => 'nav_about', 'label' => 'About Us'),
// and so on for each link
);
?>
<div id="header">
<div id="navigation">
<ul>
<?php
foreach ($nav_links as $href => $link_info) {
if ($_SERVER['REQUEST_URI'] === $href) {
?>
<li><a href="<?php echo $href; ?>" id="<?php echo $link_info['id']; ?>" class="active"><?php echo $link_info['label']; ?></a></li>
<?php
} else {
?>
<li><a href="<?php echo $href; ?>" id="<?php echo $link_info['id']; ?>"><?php echo $link_info['label']; ?></a></li>
<?php
}
}
?>
</ul>
</div>
</div>
在这里,您只需为对应于当前查看页面的链接应用 class=active
。如果您愿意,这也使得分离页面/链接配置变得非常容易。
关于php - PHP 包含的内容不适用于本地页面 css,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13575926/