【发布时间】:2025-12-04 17:20:13
【问题描述】:
我想让我的标题在使用 CSS 网格滚动时保持粘性。
我已经尝试过这里提出的解决方案:Sticky header on css grid 含义:
position: sticky;
top:0;
但是它不起作用......
.wrapper {
display: grid;
grid-template-areas: "header" "middle" "footer";
grid-template-rows: auto 1fr auto;
height: 100vh;
}
/* Header */
header {
order: 1;
grid-area: header;
display: grid;
grid-gap: 100px;
grid-template-areas: "logo nav";
grid-template-columns: auto 1fr;
grid-auto-flow: column;
position: sticky;
top: 0;
}
nav {
display: grid;
grid-area: nav;
grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
}
/* Middle */
.middle {
order: 2;
grid-area: middle;
display: grid;
grid-template-columns: 50px 1fr 50px;
}
.middle>* {
grid-column: 2 / -2;
}
/* Footer */
footer {
order: 3;
grid-area: footer;
display: grid;
grid-template-columns: 1fr auto 1fr;
}
.footer-links {
display: grid;
grid-column: 2 /-2;
grid-template-columns: 1fr;
grid-auto-flow: column;
align-items: center;
}
<body>
<div class="wrapper">
<!-- Header -->
<header>
<a href="./index.html" title="Welcome" class="logo"><img src="img/logo_jaeaess_glitch.png" alt="Logo of the VJ Jääß (Jess de Jesus)" style="width:42px;height:42px"></a>
<nav>
<a href="./index.html" title="Welcome" class="welcome active">Welcome</a>
<a href="./about.html" title="About" class="about">About</a>
<a href="./artwork.html" title="Art Work" class="artwork">Art Work</a>
<a href="./events.html" title="Events" class="events">Events</a>
</nav>
</header>
<!-- Middle -->
<section class="middle">
</section>
<footer>
<div class="footer-links">
<a href="https://www.instagram.com/jaeaess/" target="_blank">Instagram</a>
<p>© 2019 Jääß</p>
</div>
</footer>
</div>
</body>
一切都按我的意愿显示,除了标题向下滚动而不是保持固定...
(对于那些想知道的人,我下订单只是为了在开发后期将其移动到媒体查询中)
感谢您的回答!
【问题讨论】:
-
我不认为
position:sticky意味着你认为它的意思。 应该向下滚动,但当它到达顶部时它会停止。是这样吗? -
你不应该使用
position: sticky。它有糟糕的浏览器支持。 caniuse.com/#feat=css-sticky -
你介意页眉有固定的高度吗?
-
@Paulie_D 它在顶部,但只要我向下滚动它就会向上并从浏览器的可见部分消失......
-
@Reijo 是的,如果我碰巧更改徽标或在移动设备上,我更希望尺寸保持“自动”以获得更大的灵活性......
标签: css css-position css-grid