如何正确链接CSS文件与PHP页脚和标题

时间:2016-07-01 22:54:33

标签: php html css

所以我最近发现如何使用php include在我的每个文件中包含一个页脚和标题,以避免将所有页眉/页脚代码复制粘贴到每个文件。但是,假设我有一个footer.php,header.php,home.php和about.php

我是否拥有我的标题,在header.php或home.php和about.php中打开html / body标签等。

//header.php
<html>
   <head>
      links to header.css
      links to home.css
      links to about.css
   </head>
   <body>

//home.php
<?php include("header.php"); ?>  //PROBLEM: the header.php also includes other .css such as "about.css", etc. that could result in problems later.
   </body>
</html>

我该怎么做才能解决这个问题?我想到的一种方法是删除header.php文件的开头部分(html,head,title)并将其移动到home.css和about.css,这样它们每个都有自己的css链接。

3 个答案:

答案 0 :(得分:1)

对于library(rvest) page<-read_xml("test.xml") #check for name space: xml_ns(page) #read nodes with namespace nodes<-xml_nodes(page, ".//d1:variantText") header,您必须创建一个单独的文件,例如 nav.php ,该文件仅包含nav和您的nav不是site header,而是在<head></head>之后加入。header.php。 LIKE

//Home.php
<?php 
 include("header.php"); this will contain your head part mostly your .css and .js files
 include("nav.php"); This will only contain header and nav
 // home.php code goes here
?>

code下方使用也会自动获取根目录的路径。

<?php
$PATH = "http://localhost/Folder/"; // change this when needed
$PAGE = basename($_SERVER['PHP_SELF']);
?>

然后像这样添加你的文件

 <link rel="stylesheet" href="<?php echo $PATH; ?>assets/plugins/font-awesome/css/font-awesome.css">

答案 1 :(得分:1)

你走在正确的轨道上。将样式表以及javascripts分解为其他php文件以及include它们。所以所有页面都具有以下结构。

<强> home.php

<?php $this_page = "home.php"; 
      include "template.php";

对于其他页面,只需替换$this_page变量即可。所有页面共有的结构实际上是模板。

<强>的template.php

<!DOCTYPE html>
<html>
    <head>
        <title>My Website</title>
        <!-- CSS-->
        <?php include "stylesheets.php" ?>
    </head>
    <body>
        <!-- common header -->
        <?php include "header.php" ?>

        <section>
            <!-- PAGE CONTENT HERE determined by $this_page value -->
            <!-- 'content_home.php', 'content_about.php'... have the content-->
            <?php include "content_$this_page" ?>
        </section>

        <!-- common footer -->
        <?php include "footer.php" ?>

        <!-- link javascript files -->
        <?php include "scripts.php" ?>
    </body>
</html>

从一个页面到下一个页面的唯一变化是$this_page的值。它决定了上面模板中加载了哪些内容,它还决定了要包含哪些CSS和JS文件。

<强> stylesheets.php

<?php
$cssDir = "path/to/styles/"; //folder where all CSS files live

//Link each page to its CSS file
$styles = [
    'home.php' => 'home.css',
    'about.php' => 'about.css',
    'contact.php' => 'contact.css',
];

?>
<!-- CSS common to all pages -->
<link rel="stylesheet" type="text/css" href="<?="$cssDir/common.css"?>>
<!-- CSS, specific to the current page -->
<link rel="stylesheet" type="text/css" href="<?="$cssDir/$styles[$this_page]"?>>

您在scripts.php中链接到的javascript可以使用相同的方法。现在您的HTML已经成为离散模块,您可以轻松编辑网站的一部分,而无需担心其他部分中断。特别是我建议永远不要在一个php文件中打开一个标签,然后在另一个php文件中关闭它,因为随着你的网站变大,调试,维护和修改将成为一场噩梦。

关于路径: 请记住,当浏览器看到该页面时,代替include "stylesheets.php"include "scripts.php",它将完全按照原样查看该文件的回显内容。因此,在这些文件中,您希望路径为:

  1. 来自域根目录的绝对路径(最简单)
  2. 来自顶级php文件位置的相对路径(例如home.php
  3. 只是文件名,如果它位于PHP's include PATH(PHP在发出错误之前默认查找内容的地方)

答案 2 :(得分:0)

底线是您的代码可访问&amp;易于维护,我会有一个head.php,header.php&amp; footer.php文件。在head.php中,如果要连接数据库,可能需要包含config.php。还有你在index.php或home.php

每个页面中包含的所有<html><head><title><link><script>标签
include('head.php');
include('header.php');

等等