【问题标题】:Including a CSS file in a PHP file that is included in a PHP file在 PHP 文件中包含的 PHP 文件中包含 CSS 文件
【发布时间】:2012-10-26 10:18:01
【问题描述】:

我有一个(目前)不使用任何 php 代码的 php 文件,其中包含将在所有页面中使用的标题和主菜单的代码。 CSS 文件没有任何效果,尽管我已经为 h1 创建了一个样式类。显示文本“TEST”,但未应用样式。如何正确包含 CSS 文件?

mainMenu.php

<!--This code is included within the <head> of each page, and the stylesheet for the header and main menu are included here-->
<link href="styles/headerMenu.css" ref="stylesheet" type="text/css">

<!--Header and menu code-->
<div>
    <h1>TEST</h1>
</div>

index.php

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8" />
    <title>untitled</title>
    <?php include ('./includes/mainMenu.php') ?>
</head>

<body>
</body>

</html>

【问题讨论】:

  • styles/headerMenu.css 相对于 index.php ?路径正确吗?你也包括在head部分..
  • 您正在将div 标签推到那里的头部标签中,您确定它正在加载 CSS 吗?在浏览器中检查 f12。还要检查您的 css 中是否有适用的规则
  • 使用浏览器调试器来验证样式表是否已加载——如上所述——这是 99% 的路径问题
  • 你应该使用css文件的绝对路径。/styles/headerMenu.css
  • 你想做什么?如果mainMenu.php 本身就是一个完整的 html 文件,那么您如何尝试将它包含在其他 html/php 文件的头部。请先检查您的用例...

标签: php html css


【解决方案1】:

未找到 CSS 文件。仔细检查链接并更正它:

<link href="menu.css" rel="stylesheet" type="text/css">
                        ^- REL not REF

另外为了防止出现其他问题,请从代码中删除&lt;head&gt;&lt;body&gt; 的开始和结束标记。以您输出 HTML 元素的方式,如果保留这些标签,您将创建错误的 HTML。删除它们,您的页面将再次成为有效的 HTML。

index.php:

<!DOCTYPE html>
<html>    

    <meta charset="utf-8" />
    <title>untitled</title>
    <?php include ('menu.php') ?>    

</html>

有效的 HTML 的好处是您可以通过验证器运行它以及早发现错误。

【讨论】:

    【解决方案2】:

    我认为这可能是因为您的菜单出现在 &lt;head&gt; 标记内。

    CSS 需要放在 &lt;head&gt;&lt;/head&gt; 之间,但其余部分需要放在 &lt;body&gt; 标记内

    【讨论】:

    • 浏览器知道&lt;div&gt; 只属于&lt;body&gt; 并将其移动到那里。
    • hakre,这是我的新手错误。我认为 div 在头脑中没问题。
    • @ShrimpCrackers:好吧,我不会说这是你的错误,因为你是对的:div 不应该放在&lt;head&gt; 部分放在首位。只有在 this 的情况下,浏览器才会纠正错误。
    • @hakre 浏览器知道并不意味着它不应该被修改。如果不是所有东西都在正确的位置开始,你怎么能期望调试一些东西呢?如果 ShrimpCrackers 正在学习 HTML/PHP,他应该学习得当……而不是“啊,没关系,浏览器会修复它”。
    • @DannyHearnah:当然,不反对。但是对于学习来说,了解问题的确切原因也很重要(或至少是好的)。标准请见:stackoverflow.com/questions/5641997/…
    【解决方案3】:
    <link href="styles/headerMenu.css" rel="stylesheet" type="text/css">
    

    这必须是&lt;HEAD&gt;&lt;/HEAD&gt;

    <div>
        <h1>TEST</h1>
    </div>
    

    这必须是&lt;BODY&gt;&lt;/BODY&gt;

    您必须将此文件分成 2 个文件,并将它们包含在 Head 和 Body 中..

    【讨论】:

    • 也这么想,但后来发现它在脑袋里面。
    • 目前您将链接和 div 都放在头部,这是您的错误。头部用于样式链接,主体用于所有其他 html 数据。
    • 那是完全没有问题的,浏览器知道&lt;div&gt;不能出现在&lt;head&gt;中并自动移动到&lt;body&gt;中。 &lt;link&gt; 已经在 &lt;head&gt; 部分中,所以即使不“正确”实际上也是“没有错”而不是问题。
    • 如果你犯了错误并且不关心它们,那就是错误的编程......这样的代码不能有效..当你没有有效的代码时,你不知道会发生什么......
    • 如果您阅读了我之前的评论,您会看到我们在这里分享了很多内容。我还编辑了我的答案并举例说明了如何使脚本输出有效的 HTML。
    【解决方案4】:

    不要在 HEAD 部分中包含您的 HTML 代码。仅在 HEAD 部分包含 CSS 和 JavaScript 文件。并且您需要在某些 php 文件中添加 css 或图像路径的前缀。
    例如
    创建名为“conn_path.php”的新 php 文件

    <?php
    define('SITE_PATH',$_SERVER['DOCUMENT_ROOT'].'siteName/');
    define('SITE_HTTP_PATH','http://localhost/'siteName/');
    define('CSS_PATH','http://localhost/siteName/styles/');
    define('IMAGE_PATH','http://localhost/siteName/images/');
    ?>
    

    然后您的路径将如下所示:- 主菜单.php

    <?php include "conn_path.php" ?>
    <link href="<?php echo CSS_PATH ;?>headerMenu.css" rel="stylesheet" type="text/css">
    

    它将在整个项目中为您提供帮助……

    【讨论】:

      【解决方案5】:

      使用您的基本(和重复使用)html 创建一个模板文件。还有&lt;html&gt;&lt;head&gt;&lt;body&gt; 标签以及所有页面中必须包含的任何内容——作为您的样式表和菜单。

      然后添加一个带有单个变量的内容部分。

      <!DOCTYPE html>
      <html>
      
      <head>
          <meta charset="utf-8" />
          <title>untitled</title>
          <link href="styles/headerMenu.css" rel="stylesheet" type="text/css">
      </head>
      
      <body>
          <!--Header and menu code-->
          <div>
              <h1>TEST</h1>
          </div>
      
          <?php echo $page_content; ?>
      </body>
      
      </html>
      

      这样,任何页面内容都应该分配给$page_content而不是回显。

      【讨论】:

        猜你喜欢
        • 2023-03-06
        • 2011-08-02
        • 1970-01-01
        • 2012-02-13
        • 2013-05-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-07
        相关资源
        最近更新 更多