如果不使用div作为dl的直接子项,我如何得到以下代码的相同结果?
dl{
padding: 0;margin: 0;
text-align: center;
}
dl div{
display: inline;
display: inline-block;
margin-right:2%;
width: 40%;
vertical-align: top;
}
dl dt{
padding: 0;
text-align: center;
text-transform: uppercase;
font-size: 1.2em;
}
dd{
margin:0;
text-align: justify;
font-size: 1.2em;
}

<dl>
<div>
<dt>Lorem ipsum dolor</dt>
<dd>consectetur adipiscing elit. Donec eget dui accumsan, dapibus lacus sed, auctor massa. Nunc commodo, quam et commodo gravida, nisi risus vehicula tortor.
</dd>
</div>
<div>
<dt>Lorem ipsum dolor</dt>
<dd>consectetur adipiscing elit. Donec eget dui accumsan, dapibus lacus sed, auctor massa.
</dd>
</div>
</dl>
&#13;
注意:我在这里使用的例子只有两个dt和他们的dd被div包围,实际上我需要两个以上......
答案 0 :(得分:4)
您可以使用CSS列:
dl { -webkit-columns: 2; -moz-columns: 2; columns: 2; }
避免在元素dt
和dd
内部进行分组:
dt, dd {
-webkit-column-break-inside: avoid;
column-break-inside: avoid;
page-break-inside: avoid;
break-inside: avoid-column;
}
在dt
:
dt {
-webkit-column-break-after: avoid;
column-break-after: avoid;
page-break-after: avoid;
break-after: avoid-column;
}
示例小提琴:https://jsfiddle.net/abhitalks/9o797s77/
示例代码段
* {
box-sizing: border-box;
padding: 0;
margin: 0;
}
dl {
font-size: 1.2em;
margin: 8px;
-webkit-columns: 2;
-moz-columns: 2;
columns: 2;
}
dt {
text-transform: uppercase;
text-align: center;
-webkit-column-break-after: avoid;
column-break-after: avoid;
page-break-after: avoid;
break-after: avoid-column;
}
dd {
text-align: justify;
}
dt,
dd {
margin: 8px;
-webkit-column-break-inside: avoid;
column-break-inside: avoid;
page-break-inside: avoid;
break-inside: avoid-column;
}
&#13;
<dl>
<dt>Lorem ipsum dolor</dt>
<dd>consectetur adipiscing elit. Donec eget dui accumsan, dapibus lacus sed, auctor massa. Nunc commodo, quam et commodo gravida, nisi risus vehicula tortor.
</dd>
<dt>Lorem ipsum dolor</dt>
<dd>consectetur adipiscing elit. Donec eget dui accumsan, dapibus lacus sed, auctor massa.
</dd>
<dt>Lorem ipsum dolor</dt>
<dd>consectetur adipiscing elit. Donec eget dui accumsan, dapibus lacus sed, auctor massa.
</dd>
<dt>Lorem ipsum dolor</dt>
<dd>consectetur adipiscing elit. Donec eget dui accumsan, dapibus lacus sed, auctor massa.
</dd>
</dl>
&#13;
修改:添加了FireFox特定的供应商前缀。使用IE11,Edge,Chrome 47和Firefox 41进行检查。
答案 1 :(得分:2)
如何用<dl>
换行并完成?
dl{
padding: 0;margin: 0;
text-align: center;
display: inline;
display: inline-block;
margin-right:2%;
width: 40%;
vertical-align: top;
}
dl dt{
padding: 0;
text-align: center;
text-transform: uppercase;
font-size: 1.2em;
}
dd{
margin:0;
text-align: justify;
font-size: 1.2em;
}
&#13;
<dl>
<dt>Lorem ipsum dolor</dt>
<dd>consectetur adipiscing elit. Donec eget dui accumsan, dapibus lacus sed, auctor massa. Nunc commodo, quam et commodo gravida, nisi risus vehicula tortor.
</dd>
</dl>
<dl>
<dt>Lorem ipsum dolor</dt>
<dd>consectetur adipiscing elit. Donec eget dui accumsan, dapibus lacus sed, auctor massa.
</dd>
</dl>
&#13;
答案 2 :(得分:0)
您可以使用OP中的div
解决方案。它现在是有效的HTML,请参阅https://html.spec.whatwg.org/multipage/semantics.html#the-dl-element
dl元素
内容模型:
:零个或多个组,每个组由一个或多个
dt
元素组成,后跟一个或多个dd
元素,可选地与支持脚本的元素混合。或者:一个或多个
div
元素,可选地与支持脚本的元素混合。
<dl>
<div>
<dt> Last modified time </dt>
<dd> 2004-12-23T23:33Z </dd>
</div>
<div>
<dt> Recommended update interval </dt>
<dd> 60s </dd>
</div>
<div>
<dt> Authors </dt>
<dt> Editors </dt>
<dd> Robert Rothman </dd>
<dd> Daniel Jackson </dd>
</div>
</dl>
答案 3 :(得分:-1)
如果您希望您的页面响应更好以使用div,或者您可以通过删除div直接更改相同的代码。
<!DOCTYPE html>
<html>
<body>
<dl>
<dt>Lorem ipsum dolor</dt>
<dd>consectetur adipiscing elit. Donec eget dui accumsan, dapibus lacus sed, auctor massa. Nunc commodo, quam et commodo gravida, nisi risus vehicula tortor.
</dd>
<dt>Lorem ipsum dolor</dt>
<dd>consectetur adipiscing elit. Donec eget dui accumsan, dapibus lacus sed, auctor massa.
</dd>
</dl>
</body>
</html>
你也可以使用span,它不会改变设计,但只能覆盖用户内部的小块代码。
差异: span和div之间的区别在于span元素是内联的,通常用于一行内的一小部分HTML(例如段落内)而div(除了元素是块行(它基本上相当于在它之前和之后有一个换行符)并用于分组更大的代码块。