Почему не работает свойство display: flex?

Здравствуйте! У меня возникла проблема с использованием свойства display: flex. Элементы не перемещаются так, как мне хотелось бы, или перемещаются не в те места, где нужно. Можете подсказать, в чем может быть дело? Я оборачиваю контейнер с флексом, но результата все равно не получается. 

Вот мой код: 
<pre><code class="html">&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
    &lt;meta charset="UTF-8"&gt;
    &lt;title&gt;Burger Langer&lt;/title&gt;
    &lt;link rel="stylesheet" href="style.css"&gt;
&lt;/head&gt;
&lt;body&gt;
  
&lt;header class="header"&gt;
  &lt;div class="container"&gt;
 &lt;img src="./images/icons/logo.png" alt="" class="logo"&gt;
&lt;/header&gt;
&lt;ul class="header_nav"&gt;
  &lt;ul class ="header_list"&gt;
   &lt;li&gt;&lt;a href="#!"&gt;HOME&lt;/a&gt;&lt;/li&gt;
   &lt;li&gt;&lt;a href="#!"&gt;PAGES&lt;/a&gt;&lt;/li&gt;
   &lt;li&gt;&lt;a href="#!"&gt;OUR OFFER&lt;/a&gt;&lt;/li&gt;
   &lt;li&gt;&lt;a href="#!"&gt;PRICING&lt;/a&gt;&lt;/li&gt;
   &lt;li&gt;&lt;a href="#!"&gt;SHOP&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;a href="" class="btn"&gt;Order now&lt;/a&gt;
&lt;/nav&gt;
&lt;/div&gt;
&lt;/header&gt;
&lt;/body&gt;
&lt;/html&gt;</code></pre>
<pre><code class="css">@import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100..900;1,100..900&amp;display=swap');
 
body {
  font-family: "Roboto", serif;
  background-color: #1c1c1c;
  color: #fff;
}

a {
 color:#fff;
 text-decoration: none;
}

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

.header .container {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.logo {

}

.header_nav {

}

.header_list {

}

.btn {

}</code></pre>
  • 5 февраля 2025 г. 14:34
Ответы на вопрос 2
Судя по вашему коду, проблема может быть связана с тем, что вы неправильно обернули `header_nav` и `header_list` в структуре HTML. Вы пытаетесь использовать элементы, связанные с навигацией, но они не находятся внутри флекс-контейнера. Кроме того, у вас есть опечатки в HTML, например, закрывающий тег `<nav>` неправильно написан: вместо `<nav>` вы используете `</nav>`, что приводит к ошибке в структуре страницы.

Попробуйте исправить ваш HTML-код следующим образом:

```html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Burger Langer</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
  
<header class="header">
  <div class="container">
    <img src="./images/icons/logo.png" alt="" class="logo">
    <nav class="header_nav">
      <ul class="header_list">
        <li><a href="#!">HOME</a></li>
        <li><a href="#!">PAGES</a></li>
        <li><a href="#!">OUR OFFER</a></li>
        <li><a href="#!">PRICING</a></li>
        <li><a href="#!">SHOP</a></li>
      </ul>
      <a href="#" class="btn">Order now</a>
    </nav>
  </div>
</header>

</body>
</html>
```

Также, вот несколько советов по вашему CSS:

1. Убедитесь, что у вас есть какие-то стили для `.header_nav`, `.header_list`, `.btn` и `.logo`, чтобы их отобразить на странице.
2. Если вы хотите, чтобы элементы внутри `.header_nav` размещались в одной линии, используйте `display: flex;` для `.header_nav` так же, как вы сделали с `.container`.

Обновите ваш CSS, добавив стиль для `.header_nav`:

```css
.header_nav {
  display: flex;
  align-items: center;
}

.header_list {
  display: flex; /* Это поместит элементы списка в одну строку */
  margin-right: auto; /* Отодвинет кнопку вправо */
}

.btn {
  margin-left: 20px; /* Отступ от списка */
}
```

Таким образом, при правильной структуре HTML и соответствующих стилях CSS элементы в вашем заголовке будут выстраиваться так, как вы хотите.
Во-первых, неплохо бы закрыть div внутри header. 
Во-вторых, нельзя вкладывать ul прямо в ul.
В-третьих, тег a нельзя вкладывать прямо в ul.
В-четвёртых, nav нигде не открыт, чтобы его закрывать.
В-пятых, у вас один из ul не закрыт (думаю, хотели написать nav).
В-шестых, у вас попытка закрыть header, который уже закрыт.

Советую расставить все отступы и внимательно следить за тегами, какой где открывается, а какой где закрывается
Похожие вопросы