> there is no reason not to be able to build a mega menu inside UL/LI structure 
> and this has been done in superfish

Sorry, but i think this is a mistake.

This is the kind of code that Superfish expects:

        <ul id="menu">
                <li>
                        <a href="#">Category name</a>
                        <ul class="submenu">...</ul>
                </li>
        </ul>

You don't have to use a A element for the first-level name i think,
but you do have to use a UL for the submenu (while the "submenu" class
in this example is just for clarity, it's not required).

You can't do this, as part of the features of Superfish will then
fail:


        <ul id="menu">
                <li>
                        <a href="#">Category name</a>
                        <div class="submenu">...</div>
                </li>
        </ul>

Sure, you can try to use a UL element for the submenu, put a unique LI
inside, and then stuff whatever content you want in that LI (someone
is giving that advice here, as the first name is the same it could be
you ;) 
http://www.nabble.com/Superfish:-Mega-Menu-Ability-td23632675s27240.html).
If you do that, it will work, but it'll be a hack (you're abusing the
UL/LI elements). You may use a UL for the submenu, and use a set of LI
elements for different contents, say a first LI for a top image,
another LI for some inner title, a set of LI for links, another LI for
a second inner title, another set of LI for links, and a final LI for
a bottom image. That will work, but once again this is abusing the
basic HTML semantics. Of course if you don't care about semantics and
accessibility, that's not an issue. I happen to care. :)

I see a few different “good” answers to that problem. One is to amend
Superfish to make it more flexible (i.e. make this a configuration
option, test, document). One is to declare that Superfish is not meant
for mega-dropdowns or any rollover menu that needs anything else than
an unordered list of links for a submenu, which would be a perfectly
valid answer too. I vote for the first answer, though. And i may have
missed a few other solutions. But abusing HTML semantics is not a
solution in my book. I may resort to it if i really need to, but i
think it should be avoided.

Thanks for the input.

Reply via email to