Go To Content
codylindley.com

codylindley.com

CSS Step Menu

Step Menu

I recently worked on a web application that required a step menu (AKA wizard menu). This menu has a varying amount of steps, dependent upon the type of user accessing the application. Because of that requirement, I needed to write a CSS menu that could easily be changed from 5 steps to 4, 3, or 2 steps. Since the web is full of CSS menus, I thought one of this sort would be rather easy to find. I was wrong. I never really found a good example of one. So, for those of you who have looked and come up short, here’s an example.

 
  1.   #1 Comment Posted by Yannick on May 22, 02:03 PM

    That’s pretty neat Cody. Good job.

  2.   #2 Comment Posted by Ivan Minic on May 28, 12:24 AM

    Very promissing share mate :)

  3.   #3 Comment Posted by Rodrigo Catarino on May 28, 09:05 AM

    Great work!

  4.   #4 Comment Posted by Jens Grochtdreis on May 28, 09:12 AM

    Well, how come that you provide fourteen times the same ID? It seems, the ID has no work to do otherwise the page wouldn’t work.

  5.   #5 Comment Posted by Abu on May 28, 11:28 AM

    Please forgive me for my blindness, but I am failing to see how this works.

    Can you please show a practical example of its usage.

    Thank

  6.   #6 Comment Posted by Matt on May 28, 10:47 PM

    Nice work indeed! I can see this technique coming in handy for me some day. Thanks for sharing!

  7.   #7 Comment Posted by Jakub on May 29, 05:32 AM

    Nice work man.
    A just noticed one thing. From the semantic point of view, it would be perhaps better to use ol insted of ul. I consider the steps to be certainly in some order …

  8.   #8 Comment Posted by Philipp on May 29, 05:34 AM

    Is there a reason why you dont have an rss feed? would be really nice !

    greatings from germany,
    philipp

  9.   #9 Author Comment on May 29, 10:09 AM

    @Jens Grochtdreis – The menus are only an example. Only one menu at a time would appear on a page. Thus, the use of ID’s makes sense.

  10.   #10 Comment Posted by Timo on May 29, 10:44 AM

    @Cody: Your example does not validate. It is illegal to use an id more than once.

  11.   #11 Author Comment on May 29, 10:48 AM

    @Timo – Like I just told Jens, its an example. The real use of this menu only included one menu. Which means that there is only one ID on the page.

  12.   #12 Comment Posted by Thomas Hansen on May 30, 05:41 PM

    You mean like this;
    http://ajaxwidgets.com/AllControlsSamples/WizardControl.aspx

    ;)

    .t

  13.   #13 Comment Posted by Anthony LeBoeuf on Jun 4, 03:46 PM

    Very nice design man thanks!

    Made a simple wizard control with jquery, if you want it you can get it here.

    http://worcesterwideweb.com/2007/06/04/jquery-wizard-plugin/

  14.   #14 Comment Posted by Mike Stenhouse on Jun 6, 06:59 AM

    As everyone else has said: very nice! One suggestion though… I’d mark up the current step differently. Perhaps with strong instead of em? The distinction in the markup would make it more semantically meaningful.

  15.   #15 Comment Posted by Sig on Jun 25, 07:21 PM

    Hello, is it possible to take a look of the code ???

    I have to implement something like that and I would like to understand your solution (in which way you populate it, where you save the text,..)

    THANKS

  16.   #16 Comment Posted by Maxim Nesov on Jul 9, 05:12 PM

    There is possible to make this solution scalable (when enlarging text size by browser).

    All you need to do:
    1. Enlarge (continue) GIF`s to 200-300% vertically.
    2. Instead of “background-image:â€? use “background: url(images/navLastDoneBtn.gif) right center no-repeat;”
    3. Set size of blocks (li, a, em tags with width:150px and height:71px) in relative terms, for example width:6em and height:12em

    I hope my post was useful.
    Best regards.

  17.   #17 Comment Posted by Steve on Aug 10, 05:03 PM

    Dude, that’s hot. It makes me want to come up with a project to use it for. :)

  18.   #18 Comment Posted by Jeremy Mansfield on Aug 24, 09:34 AM

    This is really nice. Would love to have the code for the working example (html and css) to see a live demo in action. I have no idea how to pull this off.