How can I create different levels of sticky headers?

前端 未结 2 944
执笔经年
执笔经年 2020-12-02 01:08

I\'d like an elegant way to \"collect\" multi-level headers at the top of the window as the user scrolls, and position:sticky gets me 90% of the way there. The

相关标签:
2条回答
  • 2020-12-02 01:40

    You need to use the 'z-index' tag in order to do so. First header should have lower z-index value than any other header. The last header should have the highest z-index value. z-index tag is used to put the elements below or above any other elements.

    0 讨论(0)
  • 2020-12-02 01:42

    I think the logical way to do this is to consider nested divs like below:

    h1,
    h2,
    h3 {
      position: -webkit-sticky;
      position: sticky;
      top: 0px;
      margin:0;
    }
    
    h1 {
      background-color: red;
      height: 35px;
      z-index:3;
    }
    
    h2 {
      background-color: blue;
      height: 25px;
      top:35px;
      z-index:2;
    }
    
    h3 {
      background-color: green;
      height: 20px;
      top:60px;
      z-index:1;
    }
    <div>
      <h1>Header 1a</h1>
      <p>Lorem ipsum dolor sit amet, no qui quis eloquentiam.</p>
      <div>
        <h2>Header 2a</h2>
        <p>Lorem ipsum dolor sit amet, no qui quis eloquentiam.</p>
        <div>
          <h3>Header 3a</h3>
          <p>Lorem ipsum dolor sit amet, no qui quis eloquentiam.</p>
          <h3>Header 3b</h3>
          <p>Lorem ipsum dolor sit amet, no qui quis eloquentiam.</p>
        </div>
      </div>
      <div>
        <h2>Header 2b</h2>
        <p>Lorem ipsum dolor sit amet, no qui quis eloquentiam.</p>
        <div>
          <h3>Header 3c</h3>
          <p>Lorem ipsum dolor sit amet, no qui quis eloquentiam.</p>
          <h3>Header 3d</h3>
          <p>Lorem ipsum dolor sit amet, no qui quis eloquentiam.</p>
        </div>
      </div>
    </div>
    <div>
      <h1>Header 1b</h1>
      <p>Lorem ipsum dolor sit amet, no qui quis eloquentiam.</p>
      <div>
        <h2>Header 2c</h2>
        <p>Lorem ipsum dolor sit amet, no qui quis eloquentiam.</p>
        <div>
          <h3>Header 3e</h3>
          <p>Lorem ipsum dolor sit amet, no qui quis eloquentiam.</p>
          <h3>Header 3f</h3>
          <p>Lorem ipsum dolor sit amet, no qui quis eloquentiam.</p>
        </div>
      </div>
      <div>
        <h2>Header 2d</h2>
        <p>Lorem ipsum dolor sit amet, no qui quis eloquentiam.</p>
        <div>
          <h3>Header 3g</h3>
          <p>Lorem ipsum dolor sit amet, no qui quis eloquentiam.</p>
          <h3>Header 3h</h3>
          <p>Lorem ipsum dolor sit amet, no qui quis eloquentiam.</p>
        </div>
      </div>
    </div>

    0 讨论(0)
提交回复
热议问题