Próbuję utworzyć listę definicji (przy pomocy this guide) z jej elementami dt
i dd
o różnej zawartości. Oczywiście mógłbym zakodować szerokość tych elementów, ale chciałbym, aby lista zajmowała najdłuższy element dt
i sprawić, by rodzeństwo miało swoją długość. Ponadto, gdy zawartość elementu dd
jest dłuższa niż dostępna przestrzeń, nowa linia nie może zaczynać się pod elementem dt
, ale raczej tam, gdzie element dd
rozpoczyna się tak, jak na drugim zrzucie ekranu w this question.Jak utworzyć listę definicji o wyrównanych definicjach o zmiennej długości?
Pomyślałem, że mogę rozwiązać ten problem z atrybutem display: flex
, ale utknąłem w niedziałającym rozwiązaniu. Czy to nie jest możliwe, czy nie jestem w niewłaściwy sposób?
Oto co mam do tej pory (fiddle):
HTML:
<dl>
<dt>dt: Lorem Ipsum</dt>
<dd>dd: Lorem imperdiet</dd>
<dt>dt: Lorem id libero in Ipsum and so on and so on</dt>
<dd>dd: Lorem id libero in ipsum dolor</dd>
<dt>dt: Lorem Ipsum</dt>
<dd>dd: I should be sitting to the right of the previous dt and not wrapping round below it.</dd>
<dt>dt: Lorem id libero in Ipsum</dt>
<dd>dd: Lorem in ipsum dolor</dd>
</dl>
CSS:
dl {
display: flex;
flex-flow: column nowrap;
}
dt {
background: gold;
display: flex;
flex-flow: row wrap;
}
dd {
background: yellowgreen;
display: flex;
flex-flow: row wrap;
width: auto;
margin: 0;
padding: 0;
}
Czy mogę dodać opakowania i dodatkowy znacznik, jeśli nadal używam list definicji? – MassDebates
Poddaj się i używaj tabel –
Powtórz pytanie http://stackoverflow.com/q/15449114/1014412 –