6 css
我正在使用页面上某些元素的定义列表,并需要它们显示内联,例如:它们通常如下所示:
<def term>
<def desc>
<def desc>
我需要它们看起来像(注意多个DD):
<def term> <def desc> <def desc>
<def term> <def desc> <def desc>
<def term> <def desc> <def desc>
我可以使用moz中的浮点数让它们正常工作,但无论我尝试什么它们都不会在IE中工作,我通常得到类似的东西:
<def term> <def desc> <def desc> <def desc> <def desc> <def desc> <def desc>
<def term>
<def term>
有没有人找到这个问题的解决方案,我真的想避免在可能的情况下添加额外的标记,但是没有将它们改为无序列表我的想法:(
提前致谢
注意:您必须避免DD元素之间的空格才能正常工作.
不需要IE8 +的黑客攻击:
dd,
dt{
display: inline;
margin: 0;
}
dd:before {
content: ' '; /* space them */
}
dt:before { /* insert line break before <dt> */
content:"\A";
white-space:pre;
}
dt:first-child:before { /* disable line break before the first <dt> */
content: none;
}
Run Code Online (Sandbox Code Playgroud)
如果您不需要支持IE8,请跳过第4个CSS规则,并将此选择器用于第3个: dt:not(:first-child):before
结果应该是这样的:( 演示)
DT DD DD
DT DD DD
Run Code Online (Sandbox Code Playgroud)
如果你想要真正酷,你可以用这个替换第二个规则:
dd + dd:before {
content: ', '; /* add comma between definitions */
}
dt:after {
content: ':';
}
Run Code Online (Sandbox Code Playgroud)
结果应该是这样的:( 演示)
DT: DD, DD
DT: DD, DD
Run Code Online (Sandbox Code Playgroud)
您是否尝试过清除 dt 中的浮动?像这样:
dt { clear: left; }
dd { float: left; }
Run Code Online (Sandbox Code Playgroud)
编辑:这是一个验证的跨浏览器解决方案:
dd,dt{ display: inline; }
<dl>
<dt>1</dt><dd>1.1</dd><dd>1.2<br/></dd>
<dt>2</dt><dd>2.1</dd><dd>2.2<br/></dd>
</dl>
Run Code Online (Sandbox Code Playgroud)
然而,正如您所看到的,那个 br 非常令人讨厌并且不符合语义。希望其他人能够提出更好的解决方案。:)
| 归档时间: |
|
| 查看次数: |
6291 次 |
| 最近记录: |