Гибкость, проблема с промежутком между ними - CSS

У меня небольшая проблема, когда я использую пробел. часть навигации выходит за пределы экрана

вот мой код

<style> 
header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  padding: 20px 100px;
  z-index: 1000;
  display: flex;
  justify-content: space-between;
  align-items: center;
  transition: 0.5s;
}
</style>
<body>
 <header>
        <a href="#" class="logo">Oussama<span>Lkd.</span></a>
        <ul class="navigation">
            <li><a href="#">Item 1</a></li>
            <li><a href="#">Item 2</a></li>
            <li><a href="#">Item 3</a></li>
            <li><a href="#">Item 4</a></li>
            <li><a href="#">Item 5</a></li>
        </ul>
</header>
</body>

2 ответа

Вам не хватает размера коробки. Добавьте приведенный ниже фрагмент в начало файла CSS.

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

         * {
  box-sizing: border-box;
}

Расчет flexbox выполняется без padding(источник). Вот почему добавление отступов и установка ширины элемента не дает ожидаемого результата.

Вы можете обойти это, установив правильное положение на 0 и не объявляя ширину.

         header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  padding: 20px 100px;
  z-index: 1000;
  display: flex;
  justify-content: space-between;
  align-items: center;
  transition: 0.5s;
  
  /* this is just to have a visual reference */
  border: 1px solid red;
}
         <body>
 <header>
        <a href="#" class="logo">Oussama<span>Lkd.</span></a>
        <ul class="navigation">
            <li><a href="#">Item 1</a></li>
            <li><a href="#">Item 2</a></li>
            <li><a href="#">Item 3</a></li>
            <li><a href="#">Item 4</a></li>
            <li><a href="#">Item 5</a></li>
        </ul>
</header>
</body>

Другие вопросы по тегам