题 可以在标签内放置div吗?


我不认为这是一个问题,但我的IDE似乎告诉我不然。是否有任何浏览器无法正确呈现?

使用Netbeans IDE 7.3。

谢谢。


11
2017-12-07 00:18


起源


为什么5个upvotes的答案会被删除? - gloomy.penguin
因为与upvotes错误;) - JFK
@iglo:是的,放置一个是安全的 div 在 - 的里面 th 标签,请参阅 picssel.com/playground/jquery/divInsideTH_06dec13.html - JFK
不知道为什么它被删除了。不是吗?我从来没有在任何浏览器中看到过这个问题。是否有其他IDE在此处显示语法错误?知道会很有趣。 - Iglo
JKF,为我解决这个问题,谢谢。 - Iglo


答案:


根据HTML5规范, 那绝对没问题。内容模型是对允许作为元素的子/后代的内容的规范描述。为了 <th> 元素,只允许以下标记:

内容模型:

流内容,但没有页眉,页脚,分段内容,或   标题内容后代,如果第th个元素是排序   接口元素,没有交互式内容后代。

<div> tag是流内容的一个示例,因此应该验证。

将来,我想推荐一下 W3C的验证器服务,它可以让您快速检查您的HTML是否有效。在这种情况下,它通过:

<!DOCTYPE html>
<html>
<head><title>&nbsp;</title></head>
<body>
<table>
  <tbody>
    <tr>
      <th>
        <div></div>
      </th>
    </tr>
  </tbody>
</table>
</body>
</html>

20
2017-12-07 00:21



奇怪的是它列出了一个 table 标记为可接受。你不会放一个 div 在一个 table 直接标记,但你会把它放在一个 td,未列出。除非我在这里没有正确理解。 - Anil Natha
规范说明建议使用的地点和时间,但并不是说这是不正确的 - JFK
问题是内部是否正常,而不是tr。测试把它放在th里面。你会发现没关系。 - Alohci
@SlyRaskal - 你误解了规范对流内容的看法。它所说的是表IS流内容(例如,该表被允许作为div的子节点),而不是它可以具有流内容子节点。 - Alohci
@ Qantas94Heavy - SlyRaskal在谈论桌面元素。你是对的。 th不是流内容,但它允许流内容的孩子。 “内容模型”描述了元素允许的子元素和后代元素。 - Alohci


<DIV> 内 <TD> 要么 <TH> 绝对没问题,并且是定位和布局目的的合理要求。

例如, TH 不能有 position:relative 设定,但是 DIV 可以......使它成为一个定位容器。


1
2017-12-07 08:35