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?