html - 网格元素未按预期对齐

标签 html css css-grid

我试图让 item 的内容在中间的列中,但它似乎没有移动。

.home-grid-container {
  display: grid;
  grid-template-columns: auto;
  grid-template-rows: 0.10fr 0.98fr auto;
  height: 100vh;
}

.home-header {
  grid-column: 1 / span 3;
  grid-row: 1 / span 1;
  background: #3f51b5;
}

.home-main {
  grid-column: 1 / span 3;
  grid-row: 2 / span 3;
  background: #81d4fa;
}

.item {
  grid-column: 2 / span 1;
  grid-row: 2 / span 3;
}

.home-footer {
  grid-column: 1 / span 3;
  grid-row: 5 / span 1;
  background: #3f51b5;
  div {
    text-align: center;
    margin: 2vh;
  }
}
<div class="home-grid-container">
  <div class="home-header">
    <h1>
      <img src="/src/imgs/sitelogo.png" />
    </h1>
  </div>
  <div class="home-main">
    <div class="item">
      Simple, Fast, Powerful
      <input type="button" value="100% Free" />
    </div>
  </div>
  <div class="home-footer">
    <div>All Rights Reserved</div>
  </div>
</div>

https://css-tricks.com/snippets/css/complete-guide-grid/

最佳答案

您想要居中的元素是网格容器的后代,而不是子元素。

因为网格布局只在父元素和子元素之间延伸,.item 元素超出范围并且不接受网格属性。

但这些元素是 block 容器的内联级子元素,这意味着 text-align: center 将起作用。

.home-grid-container {
  display: grid;
  grid-template-columns: auto;
  grid-template-rows: 0.10fr 0.98fr auto;
  height: 100vh;
}

.home-header {
  grid-column: 1 / span 3;
  grid-row: 1 / span 1;
  background: #3f51b5;
}

.home-main {
  grid-column: 1 / span 3;
  grid-row: 2 / span 3;
  background: #81d4fa;
}

.item {
  grid-column: 2 / span 1;
  grid-row: 2 / span 3;
  text-align: center;    /* NEW */
}

.home-footer {
  grid-column: 1 / span 3;
  grid-row: 5 / span 1;
  background: #3f51b5;
}
<div class="home-grid-container">
  <div class="home-header">
    <h1>
      <img src="http://i.imgur.com/60PVLis.png" width="50" height="50" alt="">
    </h1>
  </div>
  <div class="home-main">
    <div class="item">
      Simple, Fast, Powerful
      <input type="button" value="100% Free" />
    </div>
  </div>
  <div class="home-footer">
    <div>All Rights Reserved</div>
  </div>
</div>

jsFiddle demo

关于html - 网格元素未按预期对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44958317/

相关文章:

javascript - 悬停时旋转,然后单击时保持在该位置,再次单击时返回原始位置

jquery - 制作像 jgrowl 一样的 float div

CSS: height- 填充 div 的其余部分?

html - CSS 图像网格对每个图像具有悬停效果

jquery - 使用 DOMSubtreeModified 突变事件。在 jQuery 中

jquery - 使用 :not selector with jquery variable

html - 最大 CSS 样式化的自动 HTML 生成指南

html - 省略号在 CSS 网格布局中不起作用

css - 我可以使用 CSS 网格让一个网格项填充来自不同网格项的空列空间吗?

html - 那么这些浏览器中的哪一个正确解释了 CSS 盒模型、Firefox、IE 或 Chrome