我有一个网站,同时需要以下功能
- 新标头是固定的(使用
position:fixed
) - 新标头开始在实际网站上方(使用
position:relative
)
显然我不能一次拥有这两个,但这就是我想要的...
因此,要以另一种方式解释,当我将标题插入我的网页(通过JavaScript)时,它不会以任何方式掩盖网站,除非用户在网页上滚动,而标题保留的位置'在固定的上面。
只能在无法更新以下HTML的情况下使用CSS完成?
<body>
<header>
<nav>
//website
javaScript插入标题
之后<body>
<div id="myInsertedDiv" class="whatCssGoesHere"></div>
<header>
<nav>
//website
https://jsfiddle.net/59orh8uf/4/
小提琴显示了一个网页,我在其中插入此"标头",标题需要是网页中的第一个项目(在网页的顶部)。这就是JSFIDDLE上发生的事情,因此第一个挑战是解决的...我现在要做的就是做到这一点,因此当我向下滚动时,它保持在顶部。
我还需要指出,每个网站的示例都不相同,因此,我无法触摸标头的HTML或以下其他内容
给您的内容与您的内容一样多。这应该可以解决问题;)
您应该能够通过使用位置来获得所需的结果:固定在纳维栏上,并且在身体上的顶部或边缘上的顶部或标题上的保证金,两个女巫都应相同作为您的Navbar高度。
但是,在这种情况下,我必须指出编写JavaScript的重要性,并考虑到可访问性。只是这样您就不会写自己的角落。
如果您只想修复标题并在页面顶部,即使您滚动到页面底部,您只需插入以下内容:
body{
margin-top: 100px; /* same as your height of your header */
}
header {
position: fixed; /* Set the header to fixed position */
top: 0; /* Position the header at the top of the page */
width: 100%;
height: 100px; /* just for example */
overflow: hidden;
}
您将位置fixed
设置为 top: 0
,以便将标题向下滚动到底部时始终在页面顶部。
解决方案是不使用CSS,因为我认为这是不可能的。
我使用了JavaScript,并在Scrollbar上添加了EventListener。如果滚动条y位置小于1,则style.position =相对,else style.position.position = fixed