QuickMenu
Document Index
  1. About The Menu
  2. What Makes QuickMenu's Div-A Hybrid Design Better Than Pure CSS?
  3. Evaluation Version Information
  4. QuickMenu Documentation
  5. Getting Started [Editing The Menu]
  6. Inserting In My Page
  7. Vertical or Horizontal Mains
  8. Multiple Menus
  9. Positioning Sub Menus
  10. Margins vs. Padding
  11. Known Quarks
  12. Browser Support
  13. Tips and Tricks
  14. Common CSS Styles
Additional Help
  1. Working With Add-Ons [add-ons/doc.html]
  2. Image Based Add-On [add-ons/image_based/doc.html]
  3. Breadcrumbs Add-On [add-ons/breadcrumbs/doc.html]
  4. Positioning Menus [positioining/doc.html]
Basic Templates
  1. Starter Template
  2. Image Based
  3. OpenCube Website
  4. Boxed Mains
  5. Vertical Grey Scale
  6. Red with Thick Left Border
  7. Green Animated Tree Menu
  8. Green Tabs with Angled Corners
  9. Underlines with Match Widths
  10. Top hover bars with sub arrows.
Add-On Templates
  1. Green Animated Tree Menu
  2. Slide down with drop away.
  3. Slide Down / Slide Up
  4. Merge Left to Right
  5. Zoom With Pulse Effect
  6. Standard Zoom Effect
  7. Items flying into position from above the menu.
  8. Items stretching down with a custom background image reveal.
  9. Items stretching up.
  10. Items expanding down and stretching the container
  11. Items flying up when sub menus hide.
  12. Breadcrumbs website with highlighting and text path.
  13. Image base menu items.
  14. Combo - Merge and Slide Effect
  15. Multiple menus with different add-ons
  16. Drop Shadow
  17. Subs over select box in IE.
  18. Item Shift Animations
  19. Tabs with Angled Corners
  20. Tabs With Rounded Corners
  21. Basic Template with Rounded Corners
  22. Underlines with Match Widths
  23. Item Enhancer - Main bars with sub arrows.
  24. KeyBoard Access (Arrows, Tab, Enter Keys)
  25. Item Bullets with Rollover Effect
 
About The Menu
QuickMenu is based on a new menu concept which was conceived and developed by OpenCube. Originally menus were DHTML based and typically to complicated and heavy to be viable solutions for most web sites. Pure CSS menu concepts emerged with the advent of FireFox and other CSS2 browsers and offered a significantly streamlined approach, however design capabilities, true scalability, and IE6 support were lacking. While pure CSS menus are gaining popularity, their limitations have kept DHTML menus as the preferred menu type for most web sites.
QuickMenu is a Div-A Hybrid menu and represents the next evolutionary step in the web based menu system. Concepts unique to the menu include...
What Makes QuickMenu's Div-A Hybrid Design Better Than Pure CSS?
The biggest improvement over the UL / LI based pure CSS menus is scalability. With a CSS menu you must define either the width of the menu items or the width of the containers. With QuickMenu's Div-A, all widths are truly scaleable to the size of the text within the items and containers. The new Div-A structure is also lighter and easier to work with...

<a href="sample.html">Main Item 1</a>
<a href="sample.html">Main Item 2</a>

    <DIV>
    <a href="sample.html">Sub Item 1</a>
    <a href="sample.html">Sub Item 2</a>
    <DIV>

<a href="sample.html">Main Item 3</a>

Above is a sample of QuickMenu's Div-A structure, it's an HTML structure for the menu items in the simplest form possible. Notice that the DIV's which define sub menu containers sit as siblings to the a tags, similar to an XML menu structure, in a pure CSS menu they would be UL tags nested within LI tags. The CSS UL / LI solution makes sense for running menus in IE7 and other CSS2 browsers without JavaScript, but in reality very few sites actually employ a no-script menu. The reason for this is that full customizability and user control enhancement via delay timers is just not possible with CSS alone, plus IE6 does not support the pure CSS solution.

With script support being required why deal with the scalability, user control, and typical clunkiness of pure CSS. QuickMenu's Div-A still supports fully customized main menus, hover styles, and linking with its JavaScript removed, plus it's truly scaleable, offers delay timers for user control, full cross-browser support, and a more friendly structure to work with.

Div-A Hybrid also works in an incredably small footprint, script size is 2K for the entire menu, this small size combined with minimal CSS and a streamlined structure puts the total menu weight right on par with Pure CSS. Like CSS, load speed is instantaneous and happens inline, while interactivity is faster than deeper nested Pure CSS solutions.

Evaluation Version Information
This evaluation download is fully functional, it's the complete product and may be tested on and in your web site. If you access the menu via http:// you will get a pop up purchase reminder message, click 'OK', and continue to test, customize, and use the menu.

If you decide to purchase the menu, an unlock code will be provided which must be added to the menus script file, the code will remove the purchase reminder. The unlock mechanism is 100% client side with no outside connections, it's a simple script based unlock with zero added overhead.

**NOTE: You will not have to re-do your menu after purchasing, this download will be activated by the unlock code.
QuickMenu Documentation
Welcome to QuickMenu! This documentation will cover the basic principals of designing and working with QuickMenu. It's assumed that the reader already has basic CSS knowledge and understands how to work with typical style setting such as background-color, padding, margin values, etc. It's also assumed that the reader understands basic HTML tags and knows how to place or add tags to a document manually.
Getting Started [Editing The Menu]
Open qm.html in a plain text editor to start customizing the menu. This file is a template menu and is what you will base your design on, all customizable options are contained within the source HTML. To view your changes, simultaneously open the file in your browser and use the refresh button to update the menu after changing styles and saving your work in the text editor.

To change the structure and items...
  1. Find the section in the source of qm.html titled "QuickMenu Structure".
  2. Add new items by adding A tags in the location you wish the item to appear.
  3. Add a new sub menu by surrounding your new item or items with DIV tags.
There are almost no limitations with QuickMenu, the structure may have any inline styles or class names you wish added to both the items and container to create a specific look for certain areas of the menu. Make sure your custom styles for individual items do not include position, display, or float settings, stick to formatting styles only. The A tags may also have any valid markup added to them as well as target or title attribute options.

To change the style and looks of the menu...
  1. Find the section in the source of qm.html titled "QuickMenu Styles".
  2. Add any valid CSS to the desired sections
Inserting In My Page
The QuickMenu code is in two sections, the first section is in the head and contains a reference to the script and your menus CSS styles. The second section appears in the body of the HTML page at the point were you wish the menu to appear and contains the structure and a JavaScript call to create the menu.

For full validation the script reference to qm.js and the CSS should appear in the head, however the menu will work if these are placed in the body above the structure.

The structure is positioned in your document body at the point you wish the menu to display. It should be placed in a DIV, TABLE, or similar block level element. Your containing element needs to have enough space to accommodate your menu or the main items may wrap to the next line. It may be helpful, depending on your layout, to add a fixed width large enough to accommodate the menu (style="width:Npx") to your containing element. The main container is a position relative div and display within your document as a block level element.

You can optimize your page by moving the JavaScript call which creates the menu "<script type="text/JavaScript">qm_create(0,false)</script>". If placed directly before your closing body tag the page will load first, and the menu will render last. If left directly after the structure, the menu will render inline with the structure. We recommend moving the call to the end of the body if you are using a very large menu structure. *Note: The JavaScript call will not work if positioned before the menu, it must appear after the menus structure.
Vertical or Horizontal Mains
The main menu may be switched from vertical to horizontal by changing the false statement in the create menu call to true.

<script type="text/JavaScript">qm_create(0,false)</script>

There is also a section which should be uncommented at the top of the CSS styles. Its the first option in the style section, and if uncommented will allow the mains to be vertically oriented in browsers without their JavaScript turned on.
Multiple Menus
You can add multiple menus to a single page. To do this add a second structure to your page, change the id in the opening div of the structure to "qm1".

<div id="qm1" class="qmmc">

Next add a new JavaScript menu create function below the new structure, change the id in the create menu call to match the id above.

<script type="text/JavaScript">qm_create(1,false)</script>


You can individually style the second menu by adding additional CSS to the menu styles section. Change the id on each new style section to match the new menu.

/*"""""""" (MAIN) Container """"""""*/
#qm1
{
    background-color:transparent;
}


You can optionaly force all menus on the page to use the same styles by changing the "#qm0" id references for any of the style options to the global class reference ".qmmc".

/*"""""""" (MAIN) Container """"""""*/
.qmmc
{
    background-color:transparent;
}
QuickMenu subs will automatically position to the right edge, or underneath their parent items. To offset a sub menus position from the default, use positive and negative margin values, you can define the margins globally in the menu styles section, or on an individual basis. Adding the following statement to the sub container styles section will move all sub menus up 1 pixel.

margin-top:-1px;


To move an individual sub menu container, add the margin value inline to its DIV tag...

<DIV style="margin-top:-1px;">


When styling your menu its good to know the difference between margins and padding. Padding adds space inside the container, e.g. if you define a padding for the sub menu containers, a gap will be created between the edge of the containers inside border and the menu items. Margins are added outside of the containers borders and will create space between adjacent containers. Margins are useful for gaping menu items to create a block style effect, or offsetting sub menu positions.
The quark factor for QuickMenu is quite low, however with any HTML or script based product there are bound to be some inconsistencies, primarily in older browsers with compliancy issues such as IE5 and IE6. While we have managed to work around most display issues, there are a few remaining quarks to look out for...
QuickMenu was tested to function and appear identically in the following browsers on Unix, Mac and Windows platforms...
*Quarks in IE 5 Mac will force sub menu containers to 100% of the main menu containers width, to work around this specify dimensions for all sub containers.
 
The styles used to customize your QuickMenu may be any valid CSS. Below is a quick reference to some common styles.