Menú desplegable: ¿lo hago con CSS, o con JavaScript?

Quiero hacer menús como el de esta web, que aparece así al abrirse:

[contenido no disponible]


...y se despliega en bloque de esta forma al hacer click en alguno de los alementos <li>:

[contenido no disponible]


¿Debo hacerlo con CSS, con JavaScript, con PHP, o cómo es más aconsejable? Gracias, un saludo.