Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Inline description list with hanging indent

Tags:

html

css

I want to create a description list in which each term and description pair appear in one single line, but having those “lines” with a hanging indent in case they wrap.

Here’s what I want visually but using p elements instead:

p {
  margin: 0 0 0 2em;
  text-indent: -2em
}
<p><b>H:</b> Himenaeos</p>
<p><b>U:</b> Ullamcorper</p>
<p><b>Lorem Ipsum pulvinar ullamcorper nulla facilisi integer lacinia massa cras sed risus:</b> Lectus orbi in dui quis est pulvinar ullamcorper nulla facilisi integer lacinia sollicitudin massa cras metus sed aliquet risus a tortor id quam.</p>
<p><b>Vestibulum sed aliquet risus a tortor integer id quam morbi mi quisque nisl felis venenatis tristique dignissim in ultrices sit amet augue proin sodales libero eget ante nulla quam aenean laoreet:</b> Vestibulum risus a tortor integer</p>
<p><b>Q:</b> Quisque</p>

So far I have managed to display each pair inline, but not luck with the hanging indent.

My current code:

dt,
dd {
  display: inline;
}

dt {
  font-weight: bold;
}

dd {
  margin: 0;
  padding: 0
}

dt::before {
  content: "";
  display: block;
}
<dl>
  <dt>H:</dt>
  <dd>Himenaeos</dd>
  <dt>U:</dt>
  <dd>Ullamcorper</dd>
  <dt>Lorem Ipsum pulvinar ullamcorper nulla facilisi integer lacinia massa cras sed risus:</dt>
  <dd>Lectus orbi in dui quis est pulvinar ullamcorper nulla facilisi integer lacinia sollicitudin massa cras metus sed aliquet risus a tortor id quam.</dd>
  <dt>Vestibulum sed aliquet risus a tortor integer id quam morbi mi quisque nisl felis venenatis tristique dignissim in ultrices sit amet augue proin sodales libero eget ante nulla quam aenean laoreet:</dt>
  <dd>Vestibulum risus a tortor integer</dd>
  <dt>Q:</dt>
  <dd>Quisque</dd>
</dl>
like image 755
VorganHaze Avatar asked Jan 26 '26 11:01

VorganHaze


1 Answers

You can consider negative margin that you rectify with a positive padding and you will get the same effect:

dl {
 padding-left:2em;
}
dt,
dd {
  display: inline;
  margin:0;
  padding:0;
}
dt {
 margin-left:-2em;
}

dd:after {
  content:"";
  display:block;
}
dt {
  font-weight: bold;
}
<dl>
  <dt>H:</dt>
  <dd>Himenaeos</dd>
  <dt>U:</dt>
  <dd>Ullamcorper</dd>
  <dt>Lorem Ipsum pulvinar ullamcorper nulla facilisi integer lacinia massa cras sed risus:</dt>
  <dd>Lectus orbi in dui quis est pulvinar ullamcorper nulla facilisi integer lacinia sollicitudin massa cras metus sed aliquet risus a tortor id quam.</dd>
  <dt>Vestibulum sed aliquet risus a tortor integer id quam morbi mi quisque nisl felis venenatis tristique dignissim in ultrices sit amet augue proin sodales libero eget ante nulla quam aenean laoreet:</dt>
  <dd>Vestibulum risus a tortor integer</dd>
  <dt>Q:</dt>
  <dd>Quisque</dd>
</dl>
like image 165
Temani Afif Avatar answered Jan 29 '26 02:01

Temani Afif