Мне нужно разместить на странице два отдельных css menu, чтобы стиль одного не перекрывал стиль второго.

Как это сделать. речь идет не о многоуровневых меню. а о двух разных.

эээ разные селекторы используй... разные ID или Class, например. Какие проблемы?

т.е. у меня например идет в шапке head

<style>
#SubMenu 1
....
</style>

<style>
#SubMenu 2
</style>

Если я так делаю, то стиль первого меню пропадает.

macuache
пробелы в ID недопустимы

а вот так:
<style>
#SubMenu 1
{}
....
#SubMenu 2
{}
</style>
что мешает сделать?
и вообще
http://htmlbook.ru

RedNaxi
Так мешает сделать присутствие пробелов.
В именах классов и id допустимы следующие символы: латиница (имена являются регистро-зависимыми), цифры, минусы. Первым символом должна быть латинская буква, и имя из одних цифр недопустимо. Знак подчеркивания использовать остро не рекомендуется не только из-за разной поддержки в старых браузерах, но и из-за проблем в новых версиях IE.
Пробел - это селектор вложенности. Поэтому его использовать в именах нельзя.
Не рекомендуется использовать id там, где можно обойтись классами.
Комбинированные классы можно использовать, задавая их в атрибуте class через пробел, но из-за ошибки в IE к ним можно обращаться в таблице стилей только по отдельности.

Al_H
ну,собственно я взял код из поста тс, и вместо
<style>
a
</style>
<style>
b</style>
предложил сделать
<style>
a
b
</style>
я думал, что т.с. поймет меня, а по поводу того, что пробелы в именах классов ставить нельзя - я даже не заморачивался, честно скажу.