[TYPO3-hci] My 4.1 proposal - again

Christopher Torgalson bedlamhotelnospam at gnospammail.com
Tue Oct 17 00:18:43 CEST 2006


JoH asenau wrote:
>>> http://www.cssplay.co.uk/menus/basic_dd.html

<snip>

> But anyway the question still remains, if a "CSS only" version of a BE
> layermenu is a must have and worth all the efforts ...

Well, if we think the best solution overall is a 'flyout' menu, consider 
the following facts:

-- CSS-/only/ solutions are possible in all modern non-IE browsers, but
-- Solutions for IE /must/ involve javascript, and
-- CSS-only solutions tend to be more difficult to use with a mouse 
(i.e. because they immediately collapse if the pointer moves ever so 
slightly away from the active area)
-- CSS-only solutions cannot be made to behave like the application 
menus most users are already accustomed to.

Given these conditions, what about an implementation that works this way:

-----

1. list-based (quite accessible or, if you prefer, still works in 
disaster situations where something goes very wrong...)

2. CSS for basic styling only, but *not* for any behaviour,

3. javascript for the following tasks:
   a. add styles to hide the sub-levels of the lists,
   b. replace :hover effect by expanding/contracting (as Joey suggested 
already) the entire second/third/etc <ul> elements using 'display:block' 
(or whatever eliminates Joey's 'flickering' [which, incidentally, I can 
not currently see in any version of IE on Win 2k or XP here...])
   c. add a much-needed /delay/ so that the menus do not instantly 
collapse when the mouse pointer is moved one pixel off the active area 
of the menu (additionally or alternatively, use js to exactly simulate 
the behaviour of OS-level menus; i.e. click to expand top-level, 
mouseover for sub-levels and /leave them open/ until something else is 
moused-over/clicked...)

-----

I favour this approach because in my opinion all /new/ functionality 
added to the BE should be _in principle_ usable without javascript. A 
menu built this way could be made to work in /any/ of the following 
situations:

-- css but no js
-- js but no css
-- no css or js



-Christopher [now with a surname!]




More information about the TYPO3-team-hci mailing list