Существует как минимум три способа решения этой проблемы.
Метод 1: - Изменить порядок деления
<div id="header">
<div id="menu"> ---- Menu here
<div id="overlay">
<div id="container">
... и float-left заголовок и меню, оба относительно. Наличие непоплаванных блочных элементов между ними могло бы повлиять на относительное плавание, и элементы div не обязательно выстраиваются в линию.
Способ 2: - пропустить все
<div id="header">
<div id="overlay">
<div id="container">
<div id="menu">
... где все поплавок влево, положение относительное. Однако вы должны убедиться, что ширина заголовка + оверлея + контейнера не слишком велика, чтобы переместить ваше меню на следующую строку.
Метод 3: Абсолютное позиционирование и изменение размера
Сохраняйте вещи такими, какие они есть, добавьте position: relative
в форму CSS. Таким образом, абсолютный элемент div внутри формы будет интерпретировать форму как ее родительский элемент и изменять ее размер. Однако ваш раздел меню не может изменить размер в соответствии с шириной формы в настоящее время, поскольку он имеет фиксированные размеры в пикселях. Они должны быть в процентах, чтобы изменить размер.
Надеюсь, это поможет.