【发布时间】:2026-01-11 11:15:01
【问题描述】:
我希望在此页面上产生效果:http://jonrohan.me/guide/css/creating-triangles-in-css/ - 但只有 CSS,没有 JavaScript(这对于 JavaScript 来说是微不足道的)。
我说的效果如下:
- 最初您会看到页眉和文章标题。
- 当你滚动页面时页眉消失。
- 文章标题固定在页面顶部,因此您在滚动时始终可以看到它。
到目前为止,我取得的最好成绩是:
http://jsfiddle.net/nottrobin/2FSvx/
但我不喜欢我的解决方案中固有的 <nav> 的重复。
有没有人可以想到任何巧妙的 CSS/3 技术,以便当您向下滚动并且 <header> 消失时,<nav> 会自然而然地上升到页面顶部?
【问题讨论】:
-
考虑到绝对没有基于滚动/位置的选择器,我不这么认为。你会像你自己一样被限制在 z-index 技巧上。
-
嗯,我有几个想法 - 例如将
<header>和<nav>放在position: fixed<div>中,然后将<header>设为静态,希望@ 987654332@ 将向上滚动并在固定的<div>中只留下<nav>。没用。还尝试了绝对定位<header>,但这也没有用。我仍然有点希望可能会有一个 hack 使<header>不是position: fixed但不知何故它仍然向下推<nav>元素。继续玩吧。 -
我认为这是不可能的,因为父元素是静态元素,子元素将始终跟随父元素(假设父元素设置为
position: relative,子元素必须跟随它)。 -
@kmiyashiro 是的,我担心显示模式之间可能存在无法克服的根本差异。顺便说一句,您是否知道一个特别好的资源来解释具有不同
positions(static、fixed、relative、absolute)的元素在不同情况下如何相互交互?跨度> -
我发现 MDN 是最好的参考:developer.mozilla.org/en/CSS/position