我写了一小段HTML:
<table><tr><td>1</td><td style="display:none"><td>2</td> <td>3</td></td></tr> <table>
正如您所见,td标签包含&#34; 2&#34;和&#34; 3&#34;在display:none
td标记内。
我这个有效的HTML?
W3验证器没有抱怨,但浏览器(chrome和firefox)正在以这种方式重新组织标签:
<table>
<tr>
<td>1</td>
<td style="display:none"></td>
<td>2</td>
<td>3</td>
</tr>
</table>
我用inspect元素看到这个。当我查看页面源时,它是原始形式。为什么浏览器会这样做?是否有效?
由于
答案 0 :(得分:6)
正如您所见,td标签包含&#34; 2&#34;和&#34; 3&#34;在
display:none
td标记内。
不,他们不是。 td元素的结束标记是可选的。你不能在另一个td元素中有一个td元素。第二个td开始标记隐式关闭前一个td元素。
我这个有效的HTML?
省略结束标记是。在另一个结束标记之后立即使用结束标记(因为您无法结束不打开的元素)。
W3验证器没有抱怨
我使用时会这样做。
HTML5:迷路结束标记td
HTML4:元素的结束标记&#34; TD&#34;这是不公开的
答案 1 :(得分:2)
它无效,因为您已经嵌套了<td>
代码....
<td style="display:none"><td>2
您无法在表格单元格中放置表格单元格。表格单元格仅在表格行内有效。换句话说,<td>
永远永远不会<{1}}。
这是正确的:
<td>
答案 2 :(得分:-1)
您是否尝试过在TD内嵌套表格?
<table>
<tr>
<td>ABC</td>
<td>DEF</td>
</tr>
<tr>
<td>
<table>
<tr>
<td>A</td>
<td>B</td>
<td>C</td>
</tr>
</table>
</td>
<td>
<table>
<tr>
<td>D</td>
<td>E</td>
<td>F</td>
</tr>
</table>
</td>
</tr>
</table>