【问题标题】:Why does my grid are works for footer only?为什么我的网格仅适用于页脚?
【发布时间】:2021-04-04 12:32:19
【问题描述】:

请告诉我为什么网格区域不能正常工作。我也在导航、主要和内容上使用过它,但输出是意外的(附在下面)。所有元素都排列在页脚下方,并且元素不在此处。

请帮帮我......我是一名 nw 编码员,正在在线学习 Web 开发

.layout {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  grid-template-rows: 0.2fr 1.5fr 0.8fr;
  grid-template-areas: "nav nav nav nav" "sidebar main main main" "sidebar content1 content2" "sidebar footer footer footer";
}

footer {
  grid-area: footer;
  background: aqua;
}

nav {
  grid-area: nav;
  background: rgb(208, 212, 212);
}

main {
  grid-area: main;
  background: rgb(255, 0, 0);
}

#sidebar {
  grid-area: side;
  background: rgb(238, 255, 0);
}

#content1 {
  grid-area: content1;
  background: rgb(81, 255, 0);
}

#content2 {
  grid-area: content2;
  background: rgb(255, 0, 255);
}
<div class="layout">
  <nav id="navbar">Home About us contact us</nav>
  <main>Main</main>
  <div id="sidebar">Sidebar</div>
  <div id="content1">Content 1</div>
  <div id="content2">Content2</div>
  <footer>Footer</footer>
</div>

输出:

【问题讨论】:

  • this你想要什么?
  • 不...Nd是的,请告诉我我的错误...
  • 比较 grid-template-areas 的值和我分享的演示中的值。
  • 先生/女士,我已经将我的代码与几个在线教程进行了比较,所以最后在这里......请帮助
  • "sidebar content1 content2" - 您已定义 4 列,但在 grid-template-areas 的这部分值中,您提供了 3 列的名称 - 缺少第四列。您可以添加句点 . 将该空间标记为空:"sidebar content1 content2 ."

标签: html css syntax-error css-grid


【解决方案1】:

除了Pawan的回答,

  1. 您必须将grid-template 属性添加到css 中的layout
  2. 您在grid-template-rows 属性中指定了3 行,但在grid-template-areas 中包含了4 行。
  3. (来自Pawan 的回答)您定义了4 列,但在网格模板区域中您使用了三个sidebar content1 content2。如果要忽略列,可以添加句点 (.),例如sidebar . content1 content2
  4. (来自Pawan 的回答)您的侧边栏有错误的grid-area。只需在#sidebar 中更改为grid-area: sidebar;

一个可行的解决方案(JS Fiddle Link):https://jsfiddle.net/hetkxj03/

【讨论】:

  • 感谢@Rashedul Alam ....终于按预期工作了...但是当我将第四列的高度从 1fr 增加到 2fr 时,所有其他行的大小都会减小...我期待您的帮助。
  • 我很困惑。是否要更改第 4 行的高度?对我来说,一切似乎都很好。即使增加第 4 列的宽度对我来说似乎也可以。
  • 对不起,我的意思是第 4 行...当我将其高度更改为 2fr...其余行折叠...可能是默认大小
  • https://jsfiddle.net/Lyt28kw5/ 这似乎工作正常。您是否检查了代码中的其他内容?
  • coderpad.io/X2HWFNR2 这是最终代码...尝试改变第四行的高度
【解决方案2】:

这里有两个问题:

  1. 您定义了 4 列,但在网格模板区域中您使用了三个“侧边栏内容 1 内容 2”

解决方案:- 添加句点。或者您可以添加增加其面积的 content1 或 content2。

  1. #sidebar 使用了错误的名称。侧边而不是侧边栏。

解决方案:- 可以将区域名称更改为侧边栏。

【讨论】:

  • 谢谢.....我会更正这些并检查问题是否仍然存在??
  • 感谢您为 StackOverflow 做出贡献。如果可能,请考虑在回答时添加解决方案代码(全部或部分)。
猜你喜欢
  • 2021-08-06
  • 1970-01-01
  • 1970-01-01
  • 2018-07-04
  • 1970-01-01
  • 2011-11-18
  • 2016-01-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多