我想要一个使用上标的有序列表,所以在我的html中是这样的:
<ol class="sup_n">
<li><p>Item 1</p></li>
<li><p>Item 2</p></li>
<li><p>Item 3</p><p>Item 3b</p></li>
</ol>
但让它看起来像
1)第 1
项
2)第 2 项
3)第 3a
项 第 3b 项
但是,现有解决方案仅显示它适用于仅包含文本的列表项。当有其他内容(跨度、div、p 标签、图像、其他列表和命名)时,结果并不完全正确。由于我的 html 包含列表“样式”的混合,(一些只有文本,各种标签的混合)我希望它足够灵活,可以处理 li 标签中的任何内容,就好像它是一个“普通”标签一样. 我希望我能说得通,说实话,我不是一个真正的 CSS 向导。
这是我使用的代码(在上面提到的页面上找到了结构思想,为上标添加了样式):
ol.sup_n {
counter-reset: item;
margin: 0;
padding: 0;
list-style:none;
}
.sup_n li {
display: block;
margin-left: 1em;
}
.sup_n li:before {
content: counter(item) ")";
counter-increment: item;
display: inline-block;
text-align: right;
width: 3em;
padding-right: 0.5em;
margin-left: -3.5em;
vertical-align:super;
font-size:xx-small;
}
<ol class="sup_n">
<li><p>Item 1</p></li>
<li><p>Item 2</p></li>
<li><p>Item 3</p><p>Item 3b</p></li>
</ol>
但只有在列表项中没有子元素时它才能正常工作。如何使它与 li 中的多个不同元素一起使用?该示例仅使用 p 个标签,但实际上它可以是不同的标签。涵盖这些的最佳方法是什么?