Настройка фиксированного меню и содержимого страницы с помощью CSS

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

Однако мне нужен промежуток между меню и страницей (ниже он называется pageTest).

Я попытался изменить поле в .menu на

margin: 0 0 50px; 0;

Однако ничего не происходит? Мой рабочий пример

HTML

<body>
<div class = "menu">

</div>

<div class = "content">

</div>

</body>

CSS

body {
padding: 0px;
margin: 0px;
}

.menu {  
  background-color: #9FACEC;    /* Medium blue */
  position: fixed;
  width: 100%;
  margin: 0;
  z-index: 1;
  display: flex; 
  justify-content: center;
  overflow: hidden;
  height: 100px;
}

.content {
 width: 90%;
 margin: 0 auto;
 overflow: hidden;
 background-color: yellow;
 height: 800px;
 }
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
0
45
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Вы должны использовать top: 0 в меню div и укажите такое же поле, как высота Nav, в вашем случае 100 пикселей рабочий код здесь

<body>


<div class = "menu">

</div>

<div class = "pageTest">


</div>

</body>

css отредактирован

    body {
    padding: 0px;
    margin: 0px;
}

.menu {  
  background-color: #9FACEC;    /* Medium blue */
  position: fixed;
  width: 100%;
  margin: 0;
  z-index: 1;
  display: flex; 
  justify-content: center;
  overflow: hidden;
  height: 100px;
  top:0;
}


.pageTest {
  width: 90%;
  margin: 0 auto;
  overflow: hidden;
  background-color: yellow;
  height: 800px;
  margin-top:150px
}

Надеюсь я ответил на твой вопрос

Ответ принят как подходящий

position: fixed удаляет элемент из обычного потока документов. Установка поля для этого элемента не повлияет на окружающие элементы.

Ваша маржа должна быть добавлена ​​к .content, а не к .menu.

.menu также потребуется top: 0, чтобы поле не сдвигало его вниз по странице.

body {
  padding: 0px;
  margin: 0px;
}

.menu {
  background-color: #9FACEC;
  /* Medium blue */
  position: fixed;
  width: 100%;
  margin: 0;
  z-index: 1;
  display: flex;
  justify-content: center;
  overflow: hidden;
  height: 100px;
  top: 0; /* Added */
}

.content {
  width: 90%;
  margin: 0 auto;
  margin-top: 55px;
  overflow: hidden;
  background-color: yellow;
  height: 800px;
  margin-top: 125px; /* Added */
}
<div class = "menu">

</div>

<div class = "content">


</div>


Видеть :Случай, когда .pageTest находится над .menu
As position:fixed в блоке .menu div удаляет элемент из потока, а затем блок .pageTest корректируется соответствующим образом, что в данном случае заставляет его начинать с верхней позиции документа.

Итак, мы можем просто передать position:relative в .pageTest div, чтобы управлять top property.

.pageTest { //other css properties.. position: relative; top: 150px; }

Предоставление top:100px запустит div .pageTest сразу после div .menu.
Таким образом добавлен 50px, чтобы иметь пробел между двумя div.

body {
    padding: 0px;
    margin: 0px;
}

.menu {  
  background-color: #9FACEC;    /* Medium blue */
  position: fixed;
  width: 100%;
  margin: 0;
  z-index: 1;
  display: flex; 
  justify-content: center;
  overflow: hidden;
  height: 100px;
}


.pageTest {
  width: 90%;
  margin: 0 auto;
  overflow: hidden;
  background-color: yellow;
  height: 800px;
  position: relative;
  top: 150px; // can be adjusted accordingly
}
<body>


<div class = "menu">

</div>

<div class = "pageTest">


</div>

</body>

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