1) Считается, что использование идентификаторов для CSS не является хорошей практикой. Его следует использовать при манипулировании контентом через javascript.
2) Переопределение селектора CSS с именем тега ul.top-nav или ul # top-nav только увеличит накладные расходы в браузере, поскольку оно должно совпадать как с тегом, так и с классом / идентификатором. Следовательно, избегайте чрезмерной квалификации селектора.