У меня есть раскрывающееся меню, положение которого должно быть в зависимости от высоты заголовка. Высота заголовка зависит от содержимого, размера шрифта и заполнения, заданного медиа-запросами в зависимости от высоты видового экрана.Абсолютное позиционирование с учетом CSS
HTML:
<header>
<p>Example</p>
<nav>
<a>Link</a>
<a>Link</a>
<a>Link</a>
</nav>
</header>
CSS:
body {
background-color: white;
}
header {
background-color: grey;
padding: 1rem 0;
position: fixed;
width: 100%;
}
@media(max-height: 500px) {
header {
padding: 0;
}
}
nav {
background-color: #CCC;
position: absolute;
top: 82px;
width: 100%;
}
a {
border-bottom: 1px solid white;
display: block;
padding: 0.75rem;
}
Представьте nav
является раскладывается выпадающее меню.
Fiddle: https://jsfiddle.net/mjufc63b/2/
Если уменьшить высоту вашего окна ниже 500 пикселей, появляется белый разрыв между заголовком и нав, что не должно быть так. Также, если вы измените размер шрифта вашего браузера.
Есть ли решение, чтобы выпадающее меню всегда под заголовком не зависело от высоты заголовка, а также над другим содержимым (какое абсолютное позиционирование делает), не используя javascript и не перемещая nav
за пределами header
?
Параметр 'nav' должен автоматически перемещаться вверх и закрыть пробел без необходимости пересмотреть маржу с Свойство 'top' css в запросе на медиа. В этом примере я мог бы это сделать, да, но я не могу определить край верхнего края, если высота заголовков изменяется из-за размера шрифта или высоты содержимого. – Hativ
Да, извините, я неправильно понял ваш вопрос. Вы можете проверить мой ответ. – Armin