Can I put anything inside DL/DT/DDs?

As of December 2017 according to HTML 5.2 Specification, you can now add a single nested <div> tag inside a <dl> tag, I assume for styling purposes:

https://www.w3.org/TR/html52/grouping-content.html#the-dl-element

Content model:

Either: Zero or more groups each consisting of one or more dt elements followed by one or more dd elements, optionally intermixed with script-supporting elements.

Or: One or more div elements, optionally intermixed with script-supporting elements.


Inside a DL you can only put DT and DD tags. A DT tag is an inline tag, so you should not put block elements in it. A DD tag can contain basically anything you want, it's a flow content tag.


Updated answer based on comments:

This was originally answered in 2011 for HTML 4, but the answer is different for HTML5:

dt Flow content, but with no header, footer, sectioning content, or heading content descendants. dd Flow content.

  • dt element reference on W3C
  • dd element reference on W3C

Original answer:

DT elements should contain inline content.
DD elements should contain block-level content.

Definition lists vary only slightly from other types of lists in that list items consist of two parts: a term and a description. The term is given by the DT element and is restricted to inline content. The description is given with a DD element that contains block-level content.

Source: W3C

This question is also an interesting read: Why use definition lists (DL,DD,DT) tags for HTML forms instead of tables?