我正在使用页面上某些元素的定义列表,并需要它们以内联方式显示,例如:它们通常如下所示:
< 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;
- }
如果您不需要支持IE8,请跳过第4个CSS规则并将此选择器用于第3个:dt:not(:first-child):before
结果应该是这样的:(demo)
- DT DD DD
- DT DD DD
如果你想要真正酷,你可以用这个替换第二个规则:
- dd + dd:before {
- content: ','; /* add comma between definitions */
- }
- dt:after {
- content: ':';
- }
结果应该是这样的:(demo)
- DT: DD,DD
- DT: DD,DD