css - 为什么这些网格区域重叠?
问题描述
脚部区域与导航和主要区域重叠(从包含在“主要”中的部分元素的圆形左下角不可见这一事实可以看出)。主要区域大小设置为自动,部分元素设置为高度 100%。这里发生了什么?
body {
margin: 0;
}
.wrapper {
display: grid;
height: 100vh;
grid-template-areas:
"header header"
"nav main"
"foot foot";
grid-template-rows: 3rem auto 3rem;
grid-template-columns: 10rem auto;
background-color: rgb(10, 2, 29);
}
header {
grid-area: header;
padding: 0.5rem;
}
nav {
grid-area: nav;
padding: 0.5rem;
}
main {
grid-area: main;
}
section {
width: auto;
height: 100%;
padding: 0.5rem;
color: rgb(10, 2, 29);
background-color: rgb(254, 254, 255);
border-radius: 0.1rem 0 0 0.1rem;
}
footer {
grid-area: foot;
background-color: blue;
padding: 0.5rem;
}
<div class="wrapper">
<header>header</header>
<nav>nav</nav>
<main>
<section id="page1">content1</section>
</main>
<footer>foot</footer>
</div>
<script src="main.js"></script>
解决方案
您在元素上设置了填充。这会增加每个框的大小,因为该box-sizing
属性的默认值为content
. 您需要覆盖默认值。
将此添加到您的代码中:
* { box-sizing: border-box }
body {
margin: 0;
}
.wrapper {
display: grid;
height: 100vh;
grid-template-areas:
"header header"
"nav main"
"foot foot";
grid-template-rows: 3rem auto 3rem;
grid-template-columns: 10rem auto;
background-color: rgb(10, 2, 29);
}
header {
grid-area: header;
padding: 0.5rem;
}
nav {
grid-area: nav;
padding: 0.5rem;
}
main {
grid-area: main;
}
section {
width: auto;
height: 100%;
padding: 0.5rem;
color: rgb(10, 2, 29);
background-color: rgb(254, 254, 255);
border-radius: 0.1rem 0 0 0.1rem;
border: 5px dashed red; /* demo */
}
footer {
grid-area: foot;
background-color: blue;
padding: 0.5rem;
}
/* new */
* { box-sizing: border-box; }
<div class="wrapper">
<header>header</header>
<nav>nav</nav>
<main>
<section id="page1">content1</section>
</main>
<footer>foot</footer>
</div>
更多关于box-sizing
这个答案。
推荐阅读
- sql - 如何根据sql中一列的日期数据获取前三个月的数据?
- aws-glue - 如何创建一个 aws 胶水分类器来读取 json
- scala - 转换字符串并与 DF 列值 Spark Scala 进行比较
- firebase - 无法使用 Firebase Web Flutter 进行身份验证
- python - Pyspark:将列值与另一个值进行比较
- visual-studio-code - VS Code - 比较显示通知已到达文件末尾
- regex - 正则表达式匹配点开始后的可选值
- sql - 使用 datetimeoffset 时 SQL Server 行为发生变化
- python - 使用 youtube_dl 库和 Python 在 vlc 中流式传输 youtube 视频
- testing - 使用 X 射线云操作测试步骤