php - PHP 包含的内容不适用于本地页面 css

标签 php html css include

在我的 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/

相关文章:

javascript - 如何将 flash 视频转换为 html5 视频?

html - 让两个 CSS 元素并排填充它们的容器,并留有边距

css - 动画卡片内下拉菜单的 Z-index 问题

css - 如何防止 CSS :after pseudo-element from overlapping other content?

php - 有没有办法在浏览器中查看当前查询响应时间?

PHP 显示来自 MySQL 的图像 BLOB

php - 是否有不使用 session 的 PHP/MySQL 数据库管理员?

php - 无法弄清楚如何将 &lt;input type ="checkbox"> 转换为 PHP bool 值

html - 在图像顶部绘制垂直线

php - 当用户关闭浏览器而不单击注销时销毁或取消设置 session