Как сделать шапку сайта адаптивной на неадаптивном сайте?

Каким образом можно реализовать адаптивный хедер на сайте, который не адаптирован под маленькие экраны? Сейчас отображается контент сайта, который масштабируется под размер экрана, но есть желание сделать адаптивным хотя бы хедер. Цель - сделать хедер в виде распространенного прямоугольника с логотипом и значком "гамбургер" на мобильных устройствах, который при нажатии на значок выводит модальное окно с пунктами меню. В частности, можно ли реализовать это без необходимости адаптировать все страницы сайта? Требуется помощь в том, как сделать адаптивным только хедер, если присутствует тег  в секции head и не понятно, как правильно использовать media queries и container queries.
  • 13 марта 2024 г. 19:19
Ответы на вопрос 2
Для того чтобы сделать только хедер адаптивным на неадаптивном сайте, вам придется внести изменения в CSS стили вашего сайта. 

1. Сначала добавьте следующий код в ваш HTML файл, чтобы создать необходимую структуру для хедера:
```html
<header>
  <div class="logo">Ваш логотип</div>
  <button class="menu-button">&#9776;</button>
  <nav class="menu">
    <ul>
      <li>Пункт меню 1</li>
      <li>Пункт меню 2</li>
      <li>Пункт меню 3</li>
    </ul>
  </nav>
</header>
```

2. Теперь добавьте следующие стили в ваш CSS файл:
```css
header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px;
}

.logo {
  font-size: 24px;
}

.menu {
  display: none;
  position: absolute;
  top: 60px;
  left: 0;
  background-color: #f9f9f9;
  padding: 10px;
}

.menu.active {
  display: block;
}

.menu-button {
  display: none;
}

@media (max-width: 768px) {
  .menu-button {
    display: block;
    font-size: 24px;
  }
  
  .menu {
    position: static;
  }
}
```

3. Далее добавьте следующий JavaScript код, чтобы сделать меню адаптивным:
```javascript
document.querySelector('.menu-button').addEventListener('click', function() {
  document.querySelector('.menu').classList.toggle('active');
});
```

Этот код создает адаптивный хедер, который будет отображать значок "гамбургер" на мобильных устройствах. При клике на значок, меню будет появляться. Помните, что этот метод работает только для хедера, и вам придется адаптировать остальные части сайта для полной адаптивности.
С чего вы взяли что медиа-запросы не работают без тега meta viewport ??? 
Единственное, что проихсодит без этого тега - мобильники задают некую виртуальную ширину устройства, обычно это 980px, и в нее рендерят сайт.

Соответственно вам никто не мешает прописать например @media only screen and (max-width: 990px) {}
и там стили адаптива свои накидать. Просто держите в уме, что оно отрендерится в 980 а потом запихается в 360 например, т.е. размеры задавайте с учетом масштаба, вот и все.
Похожие вопросы