当前位置: 首页 > 面试题库 >

在主容器中放置网格项的内容(子网格功能)

安奇
2023-03-14
问题内容

有关CSS网格的所有指南似乎都暗示着一种结构,其中放置在网格中的元素是网格本身的子级。

<div class="wrapper">
  <div>A</div>
  <div>B</div>
</div>

其中.wrapper具有display: grid和网格属性的定义。

如果我想将作为网格“孙代”的元素放置在网格本身上(而不是依赖于其父元素),是否有意义?

<div class="wrapper">
  <div>A</div>
  <div>
    <div>B</div>
    <div>C</div>
  </div>
</div>

在这里,我希望能够将A,B和C分别放在自己的网格行中;那有道理吗?


问题答案:

display: subgrid

从 CSS Grid Level 2草案规范开始:

2.网格容器

子网格提供了通过嵌套元素向下传递网格参数的功能,并将基于内容的大小调整信息返回到其父网格。

如果该元素是网格项(即,它是流入的并且其父display: subgrid元素是网格容器),则将该元素设为子网格(这是网格容器框的一种特殊类型),因此忽略其 grid- template-*grid-*-gap属性,而赞成采用父网格跟踪其跨度。

3.子网格

通过赋予网格项目本身,它可以成为网格容器display: grid。在这种情况下,其内容的布局将独立于其参与的网格的布局。

在某些情况下,可能有必要使多个网格项目的内容相互对齐。本身是网格项目的网格容器可以通过使用将其行和列的定义推迟到其父网格容器display: subgrid,使其成为子网格。

在这种情况下,子网格的网格项将参与父网格容器的网格大小调整,从而使两个网格的内容对齐。阅读更多。

主流浏览器尚未实现此功能。谁知道什么时候会。

在Grid中,只有容器的流入子级才成为网格项,并且可以接受网格属性。

对于display: subgrid网格项目,该项目的子项尊重容器的线条。

根据Grid Level 1规范,display:subgrid已推迟到Level 2。

目前,display: grid在某些情况下,在网格项目(即嵌套的网格容器)上可能会有用。

另一个可能的解决方法是display: contents



 类似资料:
  • 问题内容: 我正在尝试在最顶部创建的CSS网格上放置一个嵌套()。还没有爱(它不起作用)。也许这是不可能的,或者我缺少了什么? 问题答案: 一个范围 格格式化的内容被限制为父子关系。 这意味着网格容器始终是父级,而网格项目始终是子级。网格属性仅在此关系内起作用。 子代以外的网格容器的后代不属于网格布局,并且不接受网格属性。 您正在尝试将网格属性应用于属于网格容器的子元素而不是子元素的元素。这些元素

  • 问题内容: TL; DR: CSS网格有什么类似的东西吗? 我试图用几个月的大4x3网格创建年视图日历,而白天则嵌套7x6网格。 日历应填满页面,因此Year网格容器的宽度和高度分别为100%。 为简单起见,该笔中的每个月都有31天,从星期一开始。 我还选择了一个小得离谱的字体来演示该问题: 网格项(=日单元格)非常简洁,因为页面上有数百个。当日期数字标签过大(使用左上角的按钮随意使用笔中的字体大

  • 为什么我的标签内容没有显示在我的网格窗格中,这很奇怪,其他所有内容都在显示。 我已经尽力了。请帮忙 这里是我的代码片段和附加的结果照片

  • 问题内容: 下面的代码显示了在Chrome 60和Firefox 55中调整窗口大小时的预期行为(但在iOS Safari 10.3中没有;这很可能是另一个问题,为什么它在Safari中行为不当)。 被保留。我本来期望: or: 使图像适合网格的行,但它们都不行。带有: 我得到期望的行为。如何避免自己计算数学?换句话说,我应该怎么做才能使grid-template-rows: 1fr 1fr 1f

  • 我有以下代码,成功地将单元格的内容集中在我的Vaadin网格中。 它让它看起来像这样。 如何实现垂直居中?当我尝试添加样式名称 v-对齐中间时,它什么也没做。

  • 我正在处理ASP.NET MVC5项目,需要用Kendo Grid jQuery更改表。 当前,我正在从Api控制器返回数据,该Api控制器如下所示: 剑道似乎不喜欢这种格式。只有这样发送JSON,它才起作用: 问题:我可以使剑道网格工作与第一种类型的数据,因为我需要动态列和不同的表的数据?