Which elements are "valid" to place inside <td> tag?

html, semantic-markup

Solution

The HTML spec specifies which elements may be direct decendants of other elements.

The `<td>` element has a `flow content` content model, which means it can contain:

a abbr address area (if it is a descendant of a map element) article aside audio b bdi bdo blockquote br button canvas cite code command datalist del details dfn dialog div dl em embed fieldset figure footer form h1 h2 h3 h4 h5 h6 header hgroup hr i iframe img input ins kbd keygen label map mark math menu meter nav noscript object ol output p pre progress q ruby s samp script section select small span strong style (if the scoped attribute is present) sub sup svg table textarea time u ul var video wbr text

Problem

I know that it's not a good idea to place `div` inside `td`, but what about `span` and other elements? Which elements are ok to place inside `td` and which are not and why? Edit: The problem is that I have an old `table` layout and I need to make modifications there. To do so, I need to add elements inside `td`, so what elements will be the least evil to insert into `<td>`?

Original source

Related problems