Отчасти проблема в том, что вы не объявили тип документа в своем HTML. Ни один из объявленных doctype не поместит IE в режим quirksmode, и тогда он будет вести себя не так, как вы ожидаете.
Вы хотите разместить <!DOCTYPE html>
в верхней части документа.
Quirksmode Объяснение
Кроме того, я думаю, что есть много надежных решений, которые будут работать немного лучше, чем у вас. Как упоминалось ранее, у вас объявлено много повторяющихся стилей, что, вероятно, также вызывает проблемы.
Быстрый поиск в Google со следующим решением, которое работает очень хорошо.
Выпадающее меню CSS3
Я быстро модифицировал код и применил его к вашему. Не уверен, что это будет именно то, что вы ищете, но это только начало.
<style>
#nav {
margin: 0;
padding: 0;
list-style: none;
line-height: 1.5em;
}
#nav li {
position: relative;
width: 100px;
}
/* main level link */
#nav a:link, #nav a:active, #nav a:visited {
background-color: #333333;
border: 1px solid #333333;
color: #FFFFFF;
display: block;
padding: 0 5px;
text-decoration: none;
visibility: visible;
}
#nav a:hover {
background: #ffffff;
color: #333333;
}
/* dropdown */
#nav li:hover > ul {
display: block;
}
/* level 2 list */
#nav ul {
display: none;
left: 100px;
position: absolute;
width: 192px;
top: 0;
}
#nav ul li {
float: none;
margin: 0;
padding: 0;
}
/* clearfix */
#nav:after {
content: ".";
display: block;
clear: both;
visibility: hidden;
line-height: 0;
height: 0;
}
#nav {
display: inline-block;
}
html[xmlns] #nav {
display: block;
}
* html #nav {
height: 1%;
}
</style>
Надеюсь, это поможет!