views:

237

answers:

7

Which is more semantic and valid?

<td> 
<p>
 content text
</p>
</td>

or

<td> 
 content text
</td>
+3  A: 

It depends on your intention. If the cell is going to have just ONE paragraph then it makes no sense to add the <p> tag to it.

If you intend to have a few paragraphs in the <td> cell then it makes sense to use the <p> tag.

netrox
Why couldn't a single paragraph in a table cell be as semantically sensible as more than one?
micahwittman
A practical issue one may also run into is having to handle CSS declarations for single paragraph sections of markup and multiple paragraphs differently (because <p> is present in one case and not the other). Not a huge deal, but worth noting.
micahwittman
Like I said, it all depends on your intention. I actually vote for Asaph's reply as he explains better than I do!
netrox
+3  A: 

Leave out the <p> tag unless the content of your table cell is truly a paragraph. It's certainly possible to have paragraphs in tabular data, and in that case a semantic <p> would be appropriately placed. But for the common table with data in the cells eg. numbers, names, etc., don't include the <p>.

Asaph
+1  A: 

They are both valid HTML. The second one is simpler, and therefore better.

Dave Markle
+1  A: 

They are both valid. However, if you are going to have multiple paragraphs, obviously use the <p> tags

WarmWaffles
A: 

Both are valid; if that is the only content of <td>, and the content is not being used in JavaScript code, then the second is better.

kiamlaluno
+1  A: 

If the tabular cell data is text:

<td> 
 content text
</td>

If the tabular cell data is paragraph(s):

<td> 
<p>
 content text
</p>
...
</td>
micahwittman
A: 

Depends on if you subscribe to the "tables are for tabular data" or the "tables are for layout" school. If you prefer to use your tables for tabular data, and the paragraph is not tabular data the "p" is valid, if tables are for layout, and you have the "p" tag reserved for other layout semantics then its not required.

Short answer is, its really up to you. :)

GrayWizardx