Как сделать, чтоб панель навигации прилипала при скролле

У меня есть панель навигации, и я хочу сделать чтоб при скролле, они прилипала к верхней границе браузера, подскажите, как можно это сделать? Есть ли для этого какие-то общие правила или всё индивидуально?

Небольшое уточнение, над моей панелью навигации находится шапка, высота которой 150px.

Вот если что код:

.nav {
  overflow: hidden;
  margin-left: auto;
  margin-right: auto;
  width: 100%;
  background-color: #333;
}

.container__catalog {
  width: 222px;
}

.container__nav {
  width: 1200px;
  margin-left: auto;
  margin-right: auto;
  display: flex;
}

.container__nav a {
  color: #f2f2f2;
  padding: 14px 15px;
  text-decoration: none;
  font-size: 17px;
  display: inline-block;
}

.container__nav li {
  margin: 0px 5px;
  display: inline;
}

.container__nav a:hover {
  color: #00F19A;
}
<div class="nav">
  <div class="container__nav">
    <div class="container__catalog">
      <li><a href="/pages/Catalog/index.html">КАТАЛОГ</a></li>
    </div>

    <div class="rest__nav">
      <li><a style="color: #00F19A;" href="/pages/Main/index.html">ГЛАВНАЯ</a></li>
      <li><a href="/pages/Info/O Company/index.html">О КОМПАНИИ</a></li>
      <li><a href="/pages/Info/Zayzvki/index.html">ЗАЯВКИ НА МАТЕРИАЛ</a></li>
      <li><a href="/pages/Info/Contact/index.html">КОНТАКТЫ</a></li>
    </div>
  </div>
</div>

Буду очень признателен, если подскажите, я если что новичок, так что не кидайтесь тапками.


Ответы (1 шт):

Автор решения: Oliver Patterson

Если вы для body зададите display: flex, то вы сможете использовать position: sticky для вашей навигации.

body
{
  margin: 0;
  display: flex;
  flex-direction: column;
}

.nav {
  top: 0;
  position: sticky;
  overflow: hidden;
  margin-left: auto;
  margin-right: auto;
  width: 100%;
  background-color: #333;
}

.container__catalog {
  width: 222px;
}

.container__nav {
  width: 1200px;
  margin-left: auto;
  margin-right: auto;
  display: flex;
}

.container__nav a {
  color: #f2f2f2;
  padding: 14px 15px;
  text-decoration: none;
  font-size: 17px;
  display: inline-block;
}

.container__nav li {
  margin: 0px 5px;
  display: inline;
}

.container__nav a:hover {
  color: #00F19A;
}
<header style="height: 150px; padding: 0 24px;"><h1>Header</h1></header>

<div class="nav">
  <div class="container__nav">
    <div class="container__catalog">
      <li><a href="/pages/Catalog/index.html">КАТАЛОГ</a></li>
    </div>

    <div class="rest__nav">
      <li><a style="color: #00F19A;" href="/pages/Main/index.html">ГЛАВНАЯ</a></li>
      <li><a href="/pages/Info/O Company/index.html">О КОМПАНИИ</a></li>
      <li><a href="/pages/Info/Zayzvki/index.html">ЗАЯВКИ НА МАТЕРИАЛ</a></li>
      <li><a href="/pages/Info/Contact/index.html">КОНТАКТЫ</a></li>
    </div>
  </div>
</div>

<div style="height: 100vh; background-color: #DC4242;"></div>
<div style="height: 100vh; background-color: green;"></div>
<div style="height: 100vh; background-color: blue;"></div>
<div style="height: 100vh; background-color: #DC4242;"></div>

→ Ссылка