2015-12-03 30 views
4

我有一个文件一个HTML文件,a.html,和一个CSS文件,a_style.css,链接到一个很<head>。我现在想要包含第二个html文件b.html,它具有包含在<style>标记中的其自己的样式。具体来说,b.html指定我想要的页脚a.html。我的问题是:a_style.css文件定义了标题,边距等,这些也适用于b.html。如果我包含b.html中的a.htmla_style.css仍然适用于包含的文件吗?此外,以下是我的所有,包括b.htmla.html有效地包括另一个HTML文件

<div class="footer"> 
<?php include('./project/b.html');?> 
</div> 

难道这还不够吗?或者我需要包括在的<head>的东西,类似于

<script type="text/javascript" 
    src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"> 
</script> 

(这个特殊的代码来自MathJax)?我没有事先知道的PHP和发现这个片段的类似问题:Insert one HTML file into another HTML file。 这还没有为我工作。我尝试将扩展名更改为.php,但随后eclipse编辑器不允许我再次折叠/展开单个标签,这使得脚本非常混乱。

+0

您是否尝试将文件重命名为'.php'而不是'.html'? –

+0

是的。这没有奏效。此外,它导致日食不再显示展开/折叠功能...... –

回答

1

如果您只是想包含html代码,php命令include不是正确的工具。正如在评论中提到的那样,它用于包含PHP代码。你只是想读一个文件并打印出来。所以,你想用的是readfile

<div class="footer"> 
<?php readfile('./project/b.html');?> 
</div> 

不要紧,在CSS/JS包括有。大多数人将它们包含在<head>-Tag中,其他人则喜欢在<body>标签的末尾添加它们。但是如果你想让它工作,那并不重要。

1

a_style.css文件定义了标题,页边距等,它们也适用于b.html。如果我包含b.html中的a.htmla_style.css仍然适用于包含的文件吗?

让我开始说,这一切都取决于你在哪里包括你的文件。不管哪种方式,相互冲突的样式都将被覆盖。让我解释一下。

假设你有三个文件:

  • a.php只会
  • a_style.css
  • 湾PHP

方案:1

如果包括a_style.css包括b.phpa.php只会文件后:

a.php只会

a_style.css

p{ 
    color: #00ff00; /* green */ 
} 

b.php

<style> 
    p{ 
     color: #0000ff; /* blue */ 
    } 
</style> 

输出:

enter image description here

既然我们已经包括A_S tyle.cssb.php,因此a_style.css将覆盖每个冲突的样式(在本例中为段落颜色),因此绿色的段落。


方案:2

如果包括a_style.css包括b.phpa.php只会文件之前

一.php

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <title>Page A</title> 

    <link href="a_style.css" type="text/css" rel="stylesheet" /> 

    <?php 

     require_once("b.php"); 

    ?> 

</head> 

<body> 

    <p>This is a paragraph</p> 

</body> 
</html> 

a_style.css

p{ 
    color: #00ff00; /* green */ 
} 

b.php

<style> 
    p{ 
     color: #0000ff; /* blue */ 
    } 
</style> 

输出:

enter image description here

既然我们已经b.php之前包括a_style.css,因此b.php将覆盖每一个冲突的样式(在这种情况下款颜色),因此蓝色款。