HTML5/CSS:将标签对齐到列表项的左侧

use*_*248 3 css html5

我正在尝试创建一个有序列表,其中列表中的某些项目右侧有标签.标签应与其相关的列表项完美对齐.

这样的事情:

(label)   1. first item
          2. second item
(label)   3. sub list: (a) first sub item
                       (b) second sub item
                       (c) third sub item
(label)   4. fourth item
          ...
Run Code Online (Sandbox Code Playgroud)

我想到的第一件事是一个表,但表中的列表在HTML中是无效的.

我想到的第二件事是在一个DIV中创建一个列表,在另一个DIV中创建标签,但是我无法将每个标签与相关列表项对齐.

我想到的第三件事就是根本不使用列表,只是编写数字,但是破碎的行不能正确缩进.

我能想出的唯一解决方案是一个表(或一组DIV),其中每个项都是单独设置的START属性.这显然是一个非常糟糕的解决方案,但它至少看起来不错.

还有其他解决方案吗?

SW4*_*SW4 6

演示小提琴

一个潜在的CSS解决方案可能如下 - 你需要编辑自己的用途,但应该给你一个起点:

HTML

<ol>
    <li data-label='label1'>Item 1</li>
    <li data-label='label2'>Item 2</li>
    <li data-label='label3'>Item 3</li>
    <li data-label='label4'>Item 4</li>
    <li data-label='label5'>Item 5</li>
</ol>
Run Code Online (Sandbox Code Playgroud)

CSS

ul{
    position:relative;
}
li{
    margin-left:20px;
}
li:before{
    content:attr(data-label);
    position:absolute;
    left:0px;
}
Run Code Online (Sandbox Code Playgroud)