HTML / CSS Div扩展超越其关闭标签

时间:2013-02-12 10:47:57

标签: css html styling

在我正在创建的网页上,该页面由基于PHP的CMS动态生成。 CMS从数据库中获取页面的所有信息,然后将正确的HTML标记等回显到页面上。

我遇到的问题是,由于某些原因,我的浏览器正在扩展div超出它的结束标记。

IE:即使我看到标签关闭,浏览器也不会显示,因此div中应用的任何样式都将应用于整个页面。

以下是HTML输出。 (这是页面的摘录,标题div是持久的)。

<div id="header">
 <table>
  <tr>
   <td style="width: 10%;">
    <img style="height: 120px; width: 101px;" src="img" alt="some alt">
   </td>
   <td>
    <h2>Heading</h2>
    <h3>Subhead</h3>
   </td>
  </tr>
 <table>
</div>
<div id="menubar">

我还包括了下一个div的开头。

如果我尝试在h2内设置h3div样式,则会影响页面上的所有h2h3标记。这是我的CSS:

#header h2 {
    font-size: 24pt;
    font-weight: 900;
    color: #776F65;
    letter-spacing: 0;
    line-height: 0;
}

#header h3 {
    font-weight: 900;
    color: #776F65;
    letter-spacing: 0;
    padding-left: 35px;
}

最后,这是我用来生成HTML输出的PHP代码:

echo('<div id="header">'); // HEADER ELEMENT BEGINS HERE
    while($row = mysql_fetch_array($getHeaderElements)) {
        echo($row['content']);
    }
echo('</div>'); // End Header Element.

我使用的浏览器是Google Chrome。

有人知道为什么会发生这种奇怪的行为吗?

此致 本。

1 个答案:

答案 0 :(得分:3)

<table>的“end”标记实际上是另一个表的开始标记。

此错误可能是导致问题的原因。

Validate你的标记,这是一种便宜的方法来解决这类错误。