如何设置DIV的样式,以固定并相对于周围环境



我有一个网站,同时需要以下功能

  1. 新标头是固定的(使用position:fixed
  2. 新标头开始在实际网站上方(使用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

最新更新