Использовать позицию: относительно заголовка (как уже было предложено), чтобы он стал слоем, тогда абсолютно позиционированные элементы внутри него будут использовать этот элемент в качестве источника.
Вы можете поместить линию перед логотипом в разметке, тогда вам не нужно использовать z-index, чтобы поместить логотип поверх строки. Все браузеры не обрабатывают z-index одинаково ...
Поместив заголовок справа, он будет расширяться влево по мере необходимости.
Используйте верхнюю границу вместо нижней границы в строке, что устраняет проблему с IE, желающим сделать элемент как минимум одним символом.
Я удалил некоторые ненужные стили и добавил заголовок на страницу (как это требуется в надлежащем HTML-документе).
Это будет последовательно отображаться в Firefox 3, IE 7, IE 8, Opera 9 и Chrome 1:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://data.w3.org/1999/xhtml">
<head>
<title>Title</title>
<style type="text/css">
body {
margin: 0;
padding: 10px;
}
#headerArea {
position: relative;
background: yellow;
margin: 0 auto;
width: 760px;
height: 150px;
}
#headerArea div {
position: absolute;
}
#logo {
top: 20px;
left: 20px;
background: orange;
text-align: center;
font-size: 32pt;
width: 150px;
padding: 10px;
}
#menu {
top: 20px;
right: 20px;
background: tomato;
text-align: center;
font-size: 14pt;
width: 240px;
padding: 10px;
}
#line {
top: 80px;
left: 20px;
width: 720px;
border-top: 1px solid blue;
}
#title {
top: 90px;
right: 20px;
font-style: italic;
font-size: 14pt;
}
</style>
</head>
<body>
<div id="headerArea">
<div id="line"></div>
<div id="logo">LOGO</div>
<div id="menu">One Two Three Four Five</div>
<div id="title">This is the Title a Bit Longer</div>
</div>
</body>
</html>
(Вам может понадобиться отрегулировать позиционирование, чтобы получить именно то, что вы хотите, но это должно быть довольно легко.)