Doing it with style
For IE7+ Firefox, Safari, Chrome and Opera
If anyone asked me if it was possible to have a CSS only dropdown/flyout menu work using mouse clicks instead of mouse hovers, I have always answered no. But now with the latest developments and discoveries, and after six years of trying, I have found a way to do this.
The above menu, which is just a simple set of nested unordered lists, requires that you click on any of the top level items with arrows to open the dropdown sub menus and click on any further sub menu items with arrows to open the flyouts. The structure of the menu will be held open until you either click another parent level item with an arrow or move the mouse off the menu.
Because Internet Explorer is very 'buggy' with its support of :active and :focus combimed with the adjacent sibling selector (+) I have chosen to use TIME action for this browser. If anyone knows of a trigger that can be used to force 'a:active + ul' to be rendered without having to move the mouse off the link then please get in touch as this can then be used instead of TIME action.
So this, I believe, is the first CSS only menu on the web that uses click actions instead of hover and works in all the major browsers.
Tested and working in IE7, IE8, IE9, Firefox, Safari, Chrome and Opera.
5th April 2011
I have removed the TIME action scripting as this was too cumbersome (also a little buggy) and replaced this with a single line .htc file which corrects the IE bug. I have also coded and styled the menu to overcome a temporary bug in Chrome 10 where the adjacent sibling selector is not correctly styled.
Because of all the time and effort spent in producing this demonstration I would ask that you respect my copyright.
This demonstration can be used subject to the following terms and conditions.
Your donations keep CSS PLAY running.
If your donation is for the use of a demo then please email me with the demo url after making your donation.