我正在尝试为定义列表添加样式,使得每个 dt
元素浮动到其对应的 dd
元素的左侧。我已经使用了以下代码:
dt {
clear: both;
float: left;
width: 6em;
}
dd {
margin-left: 6.5em;
}
这个方案已经实现了多个dd
元素对应一个dt
元素,并且可以处理跨越多行的dd
文本。
但是,我想要处理一个dd
元素对应多个dt
元素的情况(这是有效的HTML),以及dt
元素高度大于相应dd
元素的情况(由于文本长度导致换行)。在这种情况下,样式会出现问题,后续的dd
元素与其dt
不对齐。
我尝试了各种方法,例如将dd
元素浮动,但这会破坏多个dd
元素的对齐。添加dd + dd { clear: both; }
几乎可以解决问题,但是长的dd
文本现在位于其dt
下面(更不用说旧版浏览器不遵守规则了)。
有人成功做到了吗?我真的不想放弃并使用表格,但也许这是适当的。
我的测试标记在这里:http://pastebin.com/nmAQ5Xdm