473,796 Members | 2,677 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Values to change in suckerfish menu

The style sheet shown below is from the suckerfish vertical menu.
http://www.htmldog.com/articles/suck.../vertical.html

I've added in a few minor changes to color code the levels.
I changed the width of the first level to 8em and get an unwanted space
between that and the 2nd level.
I'd like their to be no gap between the levels when I change the widths.
What's to change to do this?

Also, I do not understand the reason for "left: - 999em" in one definition.
However, changing the value came up with some interesting results.
<style type="text/css">

body {
font-family: arial, helvetica, serif;
}

#nav, #nav ul { /* all lists */
padding: 0;
margin: 0;
list-style: none;
float : left;
width : 11em;

}

#nav li { /* all list items */
position : relative;
float : left;
line-height : 1.25em;
margin-bottom : -1px;
width: 11em;

}

#nav li ul { /* second-level lists */
position : absolute;
left: -999em;
margin-left : 11.05em;
margin-top : -1.35em;
}

#nav li ul ul { /* third-and-above-level lists */
left: -999em;
}

#nav li a {
width: 8em;
display : block;
color : black;
font-weight : bold;
text-decoration : none;
background-color : #FAA;
border : 1px solid black;
padding : 0 0.5em;
}
#nav li li a {
width: 8em;
w\idth : 10em;
display : block;
color : black;
font-weight : bold;
text-decoration : none;
background-color : #0F0;
border : 1px solid black;
padding : 0 0.5em;
}

#nav li li li a {
width: 11em;
w\idth : 10em;
display : block;
color : black;
font-weight : bold;
text-decoration : none;
background-color : #DDF;
border : 1px solid black;
padding : 0 0.5em;
}
#nav li a:hover {
color : white;
background-color : black;
}

#nav li:hover ul ul, #nav li:hover ul ul ul, #nav li.sfhover ul ul, #nav
li.sfhover ul ul ul {
left: -999em;
}

#nav li:hover ul, #nav li li:hover ul, #nav li li li:hover ul, #nav
li.sfhover ul, #nav li li.sfhover ul, #nav li li li.sfhover ul { /* lists
nested under hovered list items */
left: auto;
}

#content {
margin-left : 12em;
}
</style>
Jul 21 '05 #1
10 6013
"Richard" <An*******@127. 001> wrote:
The style sheet shown below is from the suckerfish vertical menu.
http://www.htmldog.com/articles/suck.../vertical.html

I've added in a few minor changes to color code the levels.
I changed the width of the first level to 8em and get an unwanted space
between that and the 2nd level.
I'd like their to be no gap between the levels when I change the widths.
What's to change to do this?
If you change the width of the upper levels you must also change the
margin-left of the lower levels to match.
#nav, #nav ul { /* all lists */
width : 11em;
}
So when you change the above, you must change the following to match:
#nav li ul { /* second-level lists */
margin-left : 11.05em;
}
Also, I do not understand the reason for "left: - 999em" in one definition.
However, changing the value came up with some interesting results. #nav li:hover ul ul, #nav li:hover ul ul ul, #nav li.sfhover ul ul, #nav
li.sfhover ul ul ul {
left: -999em;
}


Instead of using display: none to hide the lower levels this menu
positions them way off the edge of the screen and then brings them on
as needed. The advantage to doing it this way is that they menu items
are always displayed and thus will always be accessible to screen
readers and the like.

Steve

--
"My theories appal you, my heresies outrage you,
I never answer letters and you don't like my tie." - The Doctor

Steve Pugh <st***@pugh.net > <http://steve.pugh.net/>
Jul 21 '05 #2
On Thu, 03 Mar 2005 17:36:29 +0000 Steve Pugh wrote:
"Richard" <An*******@127. 001> wrote:
The style sheet shown below is from the suckerfish vertical menu.
http://www.htmldog.com/articles/suck.../vertical.html

I've added in a few minor changes to color code the levels.
I changed the width of the first level to 8em and get an unwanted space
between that and the 2nd level.
I'd like their to be no gap between the levels when I change the widths.
What's to change to do this?


If you change the width of the upper levels you must also change the
margin-left of the lower levels to match.
#nav, #nav ul { /* all lists */
width : 11em;
}


So when you change the above, you must change the following to match:
#nav li ul { /* second-level lists */
margin-left : 11.05em;
}


Also, I do not understand the reason for "left: - 999em" in one
definition. However, changing the value came up with some interesting
results.

#nav li:hover ul ul, #nav li:hover ul ul ul, #nav li.sfhover ul ul, #nav
li.sfhover ul ul ul {
left: -999em;
}


Instead of using display: none to hide the lower levels this menu
positions them way off the edge of the screen and then brings them on
as needed. The advantage to doing it this way is that they menu items
are always displayed and thus will always be accessible to screen
readers and the like.

Steve


Got that worked out now.
Any way to set the width so that it will expand as needed?
Setting to auto plays havoc with the listings.

Jul 21 '05 #3
Steve Pugh wrote:

[snip]
The advantage to doing it this way is that they menu items are
always displayed and thus will always be accessible to screen
readers and the like.


Wouldn't it just be more sensible to limit proper hiding to the screen
(and possibly projection) media type, allowing others to see the items
normally.

Mike

--
Michael Winter
Replace ".invalid" with ".uk" to reply by e-mail.
Jul 21 '05 #4
Michael Winter <m.******@bluey onder.co.invali d> wrote:
Steve Pugh wrote:
The advantage to doing it this way is that they menu items are
always displayed and thus will always be accessible to screen
readers and the like.


Wouldn't it just be more sensible to limit proper hiding to the screen
(and possibly projection) media type, allowing others to see the items
normally.


Screen readers use the screen media type (in theory they should use
the aural media type as well). Makes sense really. Audio browsers on
the other hand should not use the screen media type.

Steve

--
"My theories appal you, my heresies outrage you,
I never answer letters and you don't like my tie." - The Doctor

Steve Pugh <st***@pugh.net > <http://steve.pugh.net/>
Jul 21 '05 #5
Steve Pugh wrote:
"Richard" <An*******@127. 001> wrote:
http://www.htmldog.com/articles/suck.../vertical.html


Instead of using display: none to hide the lower levels this menu
positions them way off the edge of the screen and then brings them on
as needed. The advantage to doing it this way is that they menu items
are always displayed and thus will always be accessible to screen
readers and the like.


I don't think this is really the best thing for screen readers, text
browsers or users with JS disabled. What you end up with is a big long
site map on every page. Consider how tedious it is to have to wade
through it page after page looking for any one link. It's bad enough for
sighted users to scan it over and over again, but it's even worse for
screen readers.

A much better approach, IMNSHO, is to put just the top-level menu links
in the HTML, which go to section index pages that contain the submenu
links. Use JavaScript to *add in* the submenus rather than just hide
them. That way, those who are able to use the DHTML menus as intended
get the "benefit" and the rest of us aren't punished for it.

--
Reply email address is a bottomless spam bucket.
Please reply to the group so everyone can share.
Jul 21 '05 #6
On Thu, 03 Mar 2005 17:17:58 -0600 kchayka wrote:
Steve Pugh wrote:
"Richard" <An*******@127. 001> wrote:
http://www.htmldog.com/articles/suck...e/vertical.htm
l


Instead of using display: none to hide the lower levels this menu
positions them way off the edge of the screen and then brings them on
as needed. The advantage to doing it this way is that they menu items
are always displayed and thus will always be accessible to screen
readers and the like.


I don't think this is really the best thing for screen readers, text
browsers or users with JS disabled. What you end up with is a big long
site map on every page. Consider how tedious it is to have to wade
through it page after page looking for any one link. It's bad enough for
sighted users to scan it over and over again, but it's even worse for
screen readers.

A much better approach, IMNSHO, is to put just the top-level menu links
in the HTML, which go to section index pages that contain the submenu
links. Use JavaScript to *add in* the submenus rather than just hide
them. That way, those who are able to use the DHTML menus as intended
get the "benefit" and the rest of us aren't punished for it.


Does this mean you'd prefer to rewrite a 50kb page just to add in one link?
I'm on dialup and I had to wait 3 minutes for your page to load.
You want me to do it all over again for one link? Bye bye.
Jul 21 '05 #7
kchayka wrote:
http://www.htmldog.com/articles/suck.../vertical.html
A much better approach, IMNSHO, is to put just the top-level menu
links in the HTML, which go to section index pages that contain the
submenu links. Use JavaScript to *add in* the submenus rather than
just hide them. That way, those who are able to use the DHTML menus
as intended get the "benefit" and the rest of us aren't punished for
it.


Sounds reasonable. Can you point me to an example?

--
Nico
http://www.nicoschuyt.nl
Jul 21 '05 #8
Nico Schuyt wrote:
kchayka wrote:

http://www.htmldog.com/articles/suck.../vertical.html
A much better approach, IMNSHO, is to put just the top-level menu
links in the HTML, which go to section index pages that contain the
submenu links. Use JavaScript to *add in* the submenus rather than
just hide them. That way, those who are able to use the DHTML menus
as intended get the "benefit" and the rest of us aren't punished for
it.


Sounds reasonable. Can you point me to an example?


No, coz everybody else seems to think the suckerfish way is the best for
accessibility. I strongly disagree with this opinion.

Every time this subject comes up, I think I should make an example, but
I just haven't gotten around to it. Should be easy for somebody who
knows how to manipulate the DOM, inserting child elements in particular.

--
Reply email address is a bottomless spam bucket.
Please reply to the group so everyone can share.
Jul 21 '05 #9
kchayka <us****@c-net.us> wrote:
Nico Schuyt wrote:
kchayka wrote:
>

http://www.htmldog.com/articles/suck.../vertical.html
A much better approach, IMNSHO, is to put just the top-level menu
links in the HTML, which go to section index pages that contain the
submenu links. Use JavaScript to *add in* the submenus rather than
just hide them. That way, those who are able to use the DHTML menus
as intended get the "benefit" and the rest of us aren't punished for
it.


Sounds reasonable. Can you point me to an example?


No, coz everybody else seems to think the suckerfish way is the best for
accessibilit y. I strongly disagree with this opinion.

Every time this subject comes up, I think I should make an example, but
I just haven't gotten around to it. Should be easy for somebody who
knows how to manipulate the DOM, inserting child elements in particular.


I agree that having a full site map on every page is usually not a
good idea. For reasons that include aspects of usability and
accessibility. I would go further and say that it's not a good idea
regardless of how the menu is included in the page. Too much clutter
can distract users from what they came there to do.

On several sites I've done exactly what you describe - top level links
that work as links and which, if JS is enabled, also act as triggers
for a dynamically inserted dropdown menu.
(Example is four years old and almost every part of the site been
hacked about by muppets since then but the menu system is intact:
http://www.netbenefit.com/)

But I'm not sure that it is automatically better for accessibility.

A sighted but keyboard using user can gain as much benefit from these
menus as a mouse user. So you should make the menu respond to focus as
well as mouseover. (Interestingly my example above works with Opera's
spatial navigation but not with the standard previous/next link q/a
keys which Opera uses instead of tabbing).

Once you've done that there's no way that a screen reader running on
top of an ordinary browser isn't also going to pick up the menus, so
you're back the problem of the blind user having to wade through the
menus.

A much better solution is to minimise the number of links on each
page. Do your user studies, so your information architecture, channel
users into task based navigation schemes that give them only what they
need at that moment, if they want to explore then let them go off to
the site map page or use the searcg facility. Less clutter is good.

Steve

--
"My theories appal you, my heresies outrage you,
I never answer letters and you don't like my tie." - The Doctor

Steve Pugh <st***@pugh.net > <http://steve.pugh.net/>
Jul 21 '05 #10

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

3
14954
by: domeceo | last post by:
can anyone tell me why I cannot pass values in a setTimeout function whenever I use this function it says "menu is undefined" after th alert. function imgOff(menu, num) { if (document.images) { document.images.src = eval("mt" +menu+ ".src") } alert("imgOff_hidemenu"); hideMenu=setTimeout('Hide(menu,num)',500);
1
4685
by: Martial Spirit | last post by:
Hello- I was amazed at the suckerfish drop-downs from AListApart.com. They work great except for one thing, if I position the drop-downs over an iframe element, on mouseover the menus disappear. It works fine in IE, but not FireFox. I would like to implement these menus, but if I can't get this to work, I gotta look at something else. If anyone has some suggestions, I would appreciate it.
16
4455
by: michael | last post by:
Is it possible to get all href URLs contained in a unordered list and place them in an array? Or in fact two different arrays, differently named one for each <ul> group? <ul> <li><a href="lemurs.html">Lemurs</a></li> <li><a href="chameleons.html">Chameleons</a></li> </ul> <ul>
23
2822
by: timmy | last post by:
Anyone knows if the htmldog suckerfish menu can be done in a more fluid way: http://www.htmldog.com/articles/suckerfish/dropdowns/ Or more precisely, the 2-level menu: http://www.htmldog.com/articles/suckerfish/dropdowns/example/bones2.html In fluid I mean: 1) The width of each drop menu to equal the widest text of any item contained within the visible drop menu.
3
1711
by: j0nharris | last post by:
I'm using the suckerfish vertical menu, & the positioning is working like a charm in every browser except IE6 -- go figure! The menu is sitting on its own page for now on http://www.radford.edu/jcharris/nav2.html Thanks for any input. -jon
5
3973
by: z | last post by:
I'm using a horizontal CSS-based dropdown menu based on this code: http://www.weblens.org/templates/sample_menu.html Is there a relatively easy way to add a slight delay to the menu with JavaScript, so that when you take the mouse off the sub-menus don't disappear right away?
1
1844
by: boien | last post by:
I have 4 buttons from images i created via Photoshop, now i want to get a drop down kind of popout menu when you go to them just like the ones in http://geeksontime.com/ on the left hand column, rollover "who we are" and youll see the menu and waht im talking about. My first question is. whats teh best way to go about creating the dropdown/popout menu with links, im told suckerfish menu is the best way so far but im open to any suggestions,...
1
2223
by: =?iso-8859-1?q?Jean-S=E9bastien?= | last post by:
i'm using suckerfish dropdowns, for my menus. it looks nice. but i have a problem: when i get a div with overflow: hidden property after it, the menu is overdrawed by this div.
1
2731
by: phpmagesh | last post by:
Can any one guide me how to create sucker fish menu step by step. i seen in Son of Suckerfish Dropdowns | HTML Dog but i cant able to do where to start and where to write which code. can any one help me to succeed in this task please, regards, magesh
0
9684
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
9530
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
10459
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
10236
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
7552
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
6793
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
5577
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
2
3734
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
3
2928
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.