Hola
Rafa, creo que hasta ahí llega css.
Seguramente los nuevos selectores css3 permitirán jugar un poco más.
Código:
// Por ejemplo, el selector de hermanos:
#rojo ~ #amarillo {... estilos ...}
//para...
<div id="rojo"></div><div id="amarillo"></div>
En
este tema el compañero
ryugen hace una buena demostración.
Pero ya cuando hay mucha distancia
(en la jerarquía dom, relacion padre/hijo) entre el elemento que contiene el evento y el/los otro/s elemento/s sobre el que se llevarán a cabo los cambios
(por ejemplo, hacer hover sobre un enlace en la cabecera y que cambie el contenido de un enlace en el footer) al menos en mi experiencia, y mi ignorancia, es hora de poner manos en código javascript.
Para lo cual particularmente opto por jquery por su facilidad en la manipulación del dom y por la seguridad de que obtendré un resultado crossbrowser.
Saludos.