footer.php中的标签关闭了哪个标签?

时间:2015-06-27 09:38:43

标签: php html css

我正在阅读<<实用的php和mysql构建八个动态Web应用程序>>。在附录A - 网站设计中,有两个文件 - header.php和footer.php。
它是header.php文件。

<?php
    require("config.php");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
<head>
    <title><?php echo $config_sitename; ?></title>
    <link href="stylesheet.css" rel="stylesheet">
</head>
<body>
    <div id="header">
    <h1><?php echo $config_sitename; ?></h1>
    </div>
    <div id="menu">
        <a href="<?php echo $config_basedir; ?>">Home</a>
        &bull;
        <a href="<?php echo $config_basedir; ?>about.php">About</a>
        &bull;
        <a href="<?php echo $config_basedir; ?>faq.php">FAQ</a>
        &bull;
        <a href="<?php echo $config_basedir; ?>tech.php">Technical Details</a>
    </div>
    <div id="container">
        <div id="bar">
            <?php

                require("bar.php");
            ?>
        </div>

        <div id="main">

这是footer.php文件。

    </div>    
</div>    
</body>    
</html>  

我有两个问题 1.为什么header.php中的标记不会自行关闭,例如

<div id="main">  don't close
<div id="container"> don't close
<body> tag don't close

所有这些都在footer.php中关闭,如果header.php冗长而复杂,则很难编写footer.php文件来关闭header.php中的所有标记。

2. footer.php中有一个标记</html>,但是header.php中没有<html>标记,这是什么问题?

1 个答案:

答案 0 :(得分:2)

我没有看过那本书,但通常是将一页分成三部分:

的header.php
content.php
footer.php

然后你可以想象下面的HTML代码块:

<!DOCTYPE html>
<html>
<body>
    <div class="main">
        <!--other content-->
    </div>
</body>
</html>

与此相同:

<!--header.php-->
<!DOCTYPE html>
<html>
<body>
    <div class="main">
<!--header.php end-->

<!--content.php-->
        <!--other content-->
<!--content.php end-->

<!--footer.php-->
    </div>
</body>
</html>
<!--footer.php end-->

因此,对于您的第一个问题,这些标记无法在header.php本身内关闭,因为这不允许content.php中的内容插入 .main容器

对于您的第二个问题,<html>标记可能会被意外遗漏。

一个好的做法是在结束标记旁边添加注释以使事情更清晰。例如,您的footer.php可能如下所示:

    </div><!--#main-->
</div><!--#container-->
</body>
</html>

如果标签早于预期关闭,这样做可以防止大量粗心错误;或者如果结束标签被遗漏,你可以轻松发现它。