* {
outline: 1px solid rgba(255, 0, 0, .2);
}
ol {
*:not(li) {
grid-area: none; /* hmmm... this is not right*/
}
padding: 0;
list-style: none;
display: grid;
grid-template-columns: min-content 1fr;
grid-column: subgrid;
li {
grid-column: 1 / -1;
display: grid;
grid-template-columns: subgrid;
width: 100%;
}
}
ol {
counter-reset: Nr;
*::before {
font-variant-numeric: tabular-nums;
overflow-wrap: normal;
word-break: keep-all;
}
li {
counter-increment: Nr;
&::before {
content: counter(Nr) ".";
text-align: end;
margin-right: 0.85rem;
}
ol {
counter-reset: lit;
li {
counter-increment: lit;
&::before {
content: counter(lit, lower-latin)')';
}
ol {
counter-reset: sublit;
li {
counter-increment: sublit;
&::before {
content: counter(sublit, lower-roman) '.';
}
}
}
}
}
}
}
<ol>
<li>
This is <strong>txt</strong> hi.
<ol>
<li>This li is not affected.</li>
</ol>
</li>
</ol>
我希望所有内联元素(例如示例中的
strong
)表现正常,并且不受任何网格/子网格布局的影响…此外,示例中 li
元素之后的所有内容都位于同一 strong
中也坏了。
到目前为止我所尝试的是操纵任何非 li 项目的显示属性和网格属性。我最新的方法是在代码中,旁边有注释。
它应该看起来像这样: [
但是片段输出是:
这是一个基本的两级有序列表。为什么要使用网格?
ol ol {
list-style-type: lower-alpha;
}
<ol>
<li>
gem
<ol>
<li>crosswalk</li>
<li>unlike</li>
</ol>
</li>
<li>
young
<ol>
<li>reflection</li>
<li>undertake</li>
</ol>
</li>
</ol>