如何从 css 网格/子网格中具体“排除”某个元素,或将其正确定位在复杂的嵌套网格中......

问题描述 投票:0回答:1

* {
  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 项目的显示属性和网格属性。我最新的方法是在代码中,旁边有注释。

它应该看起来像这样: [It should look like this1

但是片段输出是:

enter image description here

html css frontend css-grid nested-lists
1个回答
0
投票

这是一个基本的两级有序列表。为什么要使用网格?

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>

© www.soinside.com 2019 - 2024. All rights reserved.