我最近在使用 CSS 时遇到了一个奇怪的行为,我试图了解发生了什么,但我想我错过了一些关于导航器中渲染器引擎的知识。
代码在 codepen 上:https ://codepen.io/ghivert/pen/mdyEZpe 。
有关信息,代码也在下面:
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://fonts.googleapis.com/css?family=Poppins:100,100i,200,200i,300,300i,400,400i,500,500i,600,600i,700,700i,800,800i,900,900i&display=swap" rel="stylesheet">
<meta charset="utf-8">
<title>Example</title>
</head>
<body>
<div class="grid">
<header>Header</header>
<nav>Navbar</nav>
<main>
<div class="content">Main Content</div>
<footer>Footer</footer>
</main>
</div>
</body>
</html>
* {
box-sizing: border-box;
}
html {
line-height: 1.15;
font-family: Poppins,Helvetica,sans-serif
}
body {
margin: 0;
}
.grid {
display: grid;
grid-template-areas:
"navbar header"
"navbar central";
grid-template-columns: auto 1fr;
grid-template-rows: auto 1fr;
height: 100vh;
overflow: hidden;
}
header {
grid-area: header;
background: lemonchiffon;
}
nav {
grid-area: navbar;
background: blue;
}
main {
grid-area: central;
display: grid;
grid-template-areas:
"content" "footer";
grid-template-rows: 1fr auto;
background: purple;
overflow: auto;
}
footer {
grid-area: footer;
background: red;
}
如果你看一下 codepen,中央网格上的溢出比我预期的要多一点。<main>
不完全是内部<div>
和 的大小<footer>
,它高一些像素。
我发现它来自line-height: 1.15;
和 Poppins 字体系列的组合。当我删除 line-height 或 Poppins 时,它按预期工作,在<main>
.
你能解释为什么会发生这种行为吗?以避免在未来数小时内对其进行调试。
编辑:
添加图片更清晰:
我说的是红色页脚下方的白线。