Как правильно разместить элементы заголовка на странице?

Как можно упорядочить элементы хедера в соответствии с требуемым порядком, чтобы обеспечить отступ между "Concert Tours" и "News" как на картинке? Я уже пробовал один способ, но он не обеспечивает адаптивность элементов. Прошу помощи в нахождении эффективного решения. https://codepen.io/sinastra/pen/zYbOzJK
Изображение к вопросу
  • 20 декабря 2023 г. 7:07
Ответы на вопрос 2
Для размещения элементов заголовка на странице и обеспечения отступа между "Concert Tours" и "News" можно использовать flexbox.

Вам понадобятся следующие шаги:

1. Обернуть все элементы хедера в общий контейнер `<div class="header">`.
2. Установить для этого контейнера следующие стили:
   ```css
   .header {
     display: flex;
     justify-content: space-between;
     align-items: center;
   }
   ```
   `display: flex;` превращает контейнер в гибкую область, где элементы могут быть выравнены и расположены горизонтально.
   `justify-content: space-between;` выравнивает элементы по горизонтали таким образом, чтобы они равномерно распределились между контейнером, что создаст отступы между ними.
   `align-items: center;` выравнивает элементы вертикально по центру контейнера.
3. Удалите `float: left;` из стилей каждого элемента заголовка.
4. Разрешите тексту и другим элементам хедера свободно занимать доступное пространство. Удалите `width` и `min-width` из стилей каждого элемента.
5. Для обеспечения адаптивности элементов при маленьких экранах добавьте медиа-запросы с нужными стилями.

Обновленный HTML код:

```html
<div class="header">
  <div class="logo"><img src="logo.png" alt="Logo"></div>
  <div class="navigation">
    <ul>
      <li><a href="#">Home</a></li>
      <li><a href="#">About</a></li>
      <li><a href="#">Concert Tours</a></li>
      <li><a href="#">News</a></li>
      <li><a href="#">Contact</a></li>
    </ul>
  </div>
  <div class="search-bar">
    <input type="text" placeholder="Search">
  </div>
  <div class="social-icons">
    <a href="#"><img src="facebook-icon.png" alt="Facebook"></a>
    <a href="#"><img src="twitter-icon.png" alt="Twitter"></a>
    <a href="#"><img src="instagram-icon.png" alt="Instagram"></a>
  </div>
</div>
```

Обновленные CSS стили:

```css
.header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px;
}

.logo img {
  height: 40px;
}

.navigation ul {
  list-style-type: none;
  margin: 0;
  padding: 0;
}

.navigation ul li {
  display: inline;
  margin-right: 10px;
}

.search-bar input {
  width: 200px;
}

.social-icons img {
  height: 20px;
}
```

Теперь ваш заголовок должен быть выровнен и отступ между "Concert Tours" и "News" будет сохранен на всех экранах.
если указываете ul то надо и написать и li.  ul это список чего-то. А li это ячейка этого списка. Поэтому li и ul неотъямлемые части. Чтобы выставиль блоки в одну линию надо задать блокам свойство display, display: block или display: inline-block. Если использоваь display: block то надо задать дополнительно float: left, или же float: right. Но при свойстве float есть подводные камни, поэтому лучше использовать display: inline-block, здесь float не надо указывать. И никогда не задавайте длинну в пискселях,  или в em, то шо при адаптивной вёрстке, т.е. при подгонке под размеры моб. устройств, будет шо попало. 

Похожие вопросы