esta linea esta mal
Código CSS:
Ver original.nav-prin ul li:hover ul li {
background: yellow;
display: block;
position: absolute;
}
debe de afectar solo a la lista no a los items, y puedes de paso agregar un selector para afectar solo al submenu siguiente y no a todos, ademas eliminar código innecesario
Código CSS:
Ver original.nav-prin li:hover>ul{
background: yellow;
display: block;
position: absolute;
}
@alberto510a, si usas relative en lugar de absolute el menú al desplegarse hará que todo el contenido se desplace hacia abajo.