【问题标题】:Grid properties not working on elements inside grid container网格属性不适用于网格容器内的元素
【发布时间】:2018-03-29 18:11:25
【问题描述】:

我正在尝试将嵌套的 li (ul li ul li) 放置在最顶部 ul 上创建的 CSS 网格上。还没有爱(它不工作)。也许这是不可能的,或者我错过了什么?

#orgChart ul.orgChartLevel1 {
  display: grid;
  grid-template-columns: 12px auto;
  grid-template-rows: 100px auto auto;
  grid-row-gap: 30px;
}

#orgChart li.orgChartLevel2b {
  grid-column-start: 2;
  grid-column-end: 3;
  grid-row-start: 2;
  grid-row-end: 3;
}
<ul class="orgChartLevel1">
  <li class="orgChartLevel1a">
    <ul class="orgChartLevel2">
      <li class="orgChartLevel2b">
      </li>
    </ul>
  </li>
</ul>

【问题讨论】:

    标签: html css grid css-grid


    【解决方案1】:

    grid formatting context 的范围仅限于父子关系。

    这意味着网格容器始终是父级,而网格项始终是子级。网格属性仅在这种关系中起作用。

    子元素之外的网格容器的后代不是网格布局的一部分,并且不会接受网格属性。

    您正在尝试将网格属性应用于网格容器的后代元素,而不是子元素。这些元素超出了网格布局的范围。

    底线:您将始终需要将display: griddisplay: inline-grid 应用于父级,以便将网格属性应用于子级。

    请注意,网格项也可以是网格容器。

    另见:

    【讨论】:

    • 半成功!所有的浏览器都喜欢嵌套网格的方法(li.orgChartLevel1a 变成了一个网格)。现在对于那些讨厌的旧规范规则和 Edge 的 -ms- 前缀......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多