我有一个有两个区域的网格.它在grid-template-areas: "list details"的情况下工作得很好.如果我只指定一个区域:grid-template-areas: "list",为什么它会创建3x2栅格?为什么它把第二个区域粘在右下角的轨道上?

https://jsfiddle.net/o5txebkc/

#main {
    display: grid;
    grid-template-areas:
        "list";
}

    #main .list {
        background: yellow;
        grid-area: list;
    }

    #main .details {
        background: green;
        grid-area: details;
    }
<main id="main">
  <article class="list">
    <ul>
      <li>one</li>
      <li>two</li>
    </ul>
  </article>

  <article class="details">
    <h3>Details</h3>
    <p>
      some details
    </p>
  </article>
</main>

推荐答案

Screenshot of grid in Developer Tools

使用开发人员工具突出显示网格并显示线条,我看到"详细信息"位于显式网格之外.(请注意负数行号.)如果从.details { }类规则中删除grid-area: details;,则此行为会发生变化.

因为您定义了"Detail"的网格区域,但没有给它在网格上的显式位置,所以它被放置在隐式网格中的最近行和列中,在那里它不会接触到指定的行.


The implicit and explicit grid

  • 显式网格:使用网格模板[-*]创建.
  • 隐式网格:当内容放置在定义的显式网格之外时,扩展该网格,例如通过绘制其他网格线将其放置到行中.


Counting backwards

我们也可以从网格的块和内联端向后计数...这些行可以作为-1寻址,并且可以从 倒数第二行是-2.值得注意的是, 最后一行是显式网格的最后一行.并且没有考虑到 将添加到隐式网格中的任何行或列考虑到 那.


'grid-area' values

如果名称指定为<;Custom-ident&>,则只有具有该名称的行 算上了.如果不存在具有该名称的足够行,则所有隐式格网 假定行具有该名称,以便查找此 位置.

Html相关问答推荐

注册组件不显示当我导航到注册站点

我似乎不能正确地将我的导航栏居中'

为什么使用Google字体的SVG徽标内的文本不能在网页上正确呈现?

在 Select 前后更改选项卡的背景

如何使用css为动态用户输入矩阵添加背景色?

Angular 15 p-对话框不使用组件 Select 器呈现HTML

我怎样才能在我的网站上制作花哨的角落

有没有办法根据另一个项目调整FlexBox项目的大小?

在Vue 3中使用v-Bind将计算(computed)属性传递给css url()

如果最后一行的卡数少于其他行,则在使用flex grow使卡在调整大小时拉伸后,flex卡的宽度将被拉伸

添加带有悬停动画的喜欢图标

如何在黑暗模式切换中添加图标

需要帮助个性化我的 CSS 导航栏:如何在鼠标悬停时突出显示
  • 元素?
  • 用于表行组标题的正确 HTML 标记是什么?

    使用 R markdown 在 html 中包含图像

    调整屏幕大小时标题在图像下方重叠 - HTML

    pandas `to_html()` - 如何只使特定的行有边框

    如何根据行中的其中一列将行居中?

    如何通过可见文本使用 Selenium 定位元素

    我用 ejs 修复了一个奇怪的语法错误,我想知道问题出在哪里