html - 为什么网格元素堆放在 Angular 落里?

标签 html css css-grid

我创建了一个网格。然而,出于某种原因,所有网格元素都堆叠在右下角,没有任何高度或宽度,而不是假定已分配给它们的 grid-area 属性的值。

当然我还没有给网格项一个高度或宽度,但他们不是假设了相应网格区域的宽度和高度吗?

我相当确定我已经关注了 Mozilla guide到 T。不确定我哪里出错了。任何帮助将不胜感激!

Here is an MVP.

body {
  width: 100vw;
  height: 100vh;
  margin: 0;
  background: #0d0d0d;
}

#layout-grid {
  width: 100vw;
  height: 100vh;
  display: grid;
  grid-template-areas:
    c c c c a a a a
    p p p p i i i i
    p p p p i i i i
    p p p p i i i i
    p p p p i i i i
    p p p p o o o o
    p p p p o o o o
  ;
  grid-template-columns: repeat(8, 1fr);
  grid-template-rows: repeat(7, 1fr);
  grid-gap: 2%;
  
box-sizing:border-box;
border:solid skyblue 3px;
}

  #calender-navigation {
    grid-area: c;
  border:solid limegreen 3px;
  background:limegreen;
  }

  #account-summary {
    grid-area: a;
  border:solid orange 3px;
  background:orange;
  }

  #performance {
    grid-area: p;
  border:solid grey 3px;
  background:grey;
  }

  #user-input {
    grid-area: i;
  border:solid blue 3px;
  background:blue;
  }

  #positions {
    grid-area: o;
  border:solid red 3px;
  background:red;
  }
<div id="layout-grid">
  <div id="calender-navigation"></div>
  <div id="account-summary"></div>
  <div id="performance"></div>
  <div id="user-input"></div>
  <div id="positions"></div>
</div>

最佳答案

您需要将 ""与 grid-template-areas 的值一起使用,因为在您的情况下它是一个 string 值:

body {
  width: 100vw;
  height: 100vh;
  margin: 0;
  background: #0d0d0d;
}

#layout-grid {
  width: 100vw;
  height: 100vh;
  display: grid;
  grid-template-areas:
    "c c c c a a a a"
    "p p p p i i i i"
    "p p p p i i i i"
    "p p p p i i i i"
    "p p p p i i i i"
    "p p p p o o o o"
    "p p p p o o o o"
  ;
  grid-template-columns: repeat(8, 1fr);
  grid-template-rows: repeat(7, 1fr);
  grid-gap: 2%;
  
box-sizing:border-box;
border:solid skyblue 3px;
}

  #calender-navigation {
    grid-area: c;
  border:solid limegreen 3px;
  background:limegreen;
  }

  #account-summary {
    grid-area: a;
  border:solid orange 3px;
  background:orange;
  }

  #performance {
    grid-area: p;
  border:solid grey 3px;
  background:grey;
  }

  #user-input {
    grid-area: i;
  border:solid blue 3px;
  background:blue;
  }

  #positions {
    grid-area: o;
  border:solid red 3px;
  background:red;
  }
<div id="layout-grid">
  <div id="calender-navigation"></div>
  <div id="account-summary"></div>
  <div id="performance"></div>
  <div id="user-input"></div>
  <div id="positions"></div>
</div>

关于html - 为什么网格元素堆放在 Angular 落里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47850688/

相关文章:

html - 防止 IOS/Safari 从链接打开应用程序

python - 使用 URL 将参数传递给 CGI 程序 (python)

html - 为什么分页符不适用于 CSS 显示网格?

html - 仅CSS的砌体布局

javascript - html 钻取下拉所选值未插入 MYSQL

html - 如何删除网站超链接末尾的.html?

javascript - Weebly 自定义搜索栏

html - 以 Bootstrap 形式关闭空间

html - iOS Safari : scrolling is broken inside position: fixed; elements

html - 在 flex box 中使用时,网格不占据其 div 的全部高度