> Tim Dawson wrote:
> 
>> I have a CSS drop-down navigation system that works fine in FF, IE 6&7 and 
>> (I 
>> believe) in Safari.  Recently I discovered that in the AOL rendering of IE7 
>> the 
>> drop-downs displayed with a small gap (perhaps 2 or three pixels) between 
>> them 
>> and the permanent menu items above.  I couldn't move the mouse across the 
>> gap 
>> without the drop-downs vanishing (unless I moved very fast).
> 
> 
> This is because of this   div#nav ul ul {top: 22px;}

Correct, but if I reduce the 22px the drop-downs encroach on the fixed menu 
items, as I said below.  It may be I have to accept that.
> 
> 
>> I could move the drop-downs up for all browsers, but it wouldn't look so 
>> good in 
>> FF.  Is there a way to sniff for AOL and include some hack ?
> 
> 
> Do NOT hack when the CSS is problematic in the first place. You have sent it 
> crazy.
> 
>> I've already got some special CSS for IE, using the conditional [if IE] etc.
> 
> 
> I will not dare to look what these CC contain, but if any of it involves this 
> menu. Remove those rules.
> 
> 
>> The secondary problem is that I'd have no ready means of testing such a hack.
> 
> 
> Why? What browsers do you have? I seem to collect them myself :-)
> 
> 
> Ok the present problematic CSS:

I'm sorry you don't like my CSS.  It's taken from More Eric Meyer Project 6. 
I'll try what you've suggested and see how I get on.
> 
> 
> div#nav ul {
>       margin: 0;
>       padding: 0;
>       background: #FDFDFD; /* DELETE, does nothing since the child li are 
> floated and reduces the height to possibly zero */
> }
> 
> div#nav li {
>       position: relative;
>       float: left; /* Shrink wrap the anchor */
>       width: auto; /* DELETE, already a block element plus the width is 
> dictated by the width child anchor elements */
>       list-style: none;
>       margin: 0;
> }
>       
> 
> div#nav li.main { /* this class is superficial since it could be easily 
> overrule */
>       background: #FEF699; /* the same background color as div#nav */
>       width: auto ; /* DELETE, already a block element */
>       padding: 0 5px; /* DELETE, padding can be added to anchor */
> }
> div#nav li.main a {
>       width: auto; /* DELETE, an anchor is an inline element width 100% or 
> auto does nothing */
> }  
> div#nav ul.level2 {
>       z-index: 5; /* DELETE, this z-index should be given the the grandfather 
> div#nav */
> }
> div#nav ul.level2 a {width: 83px;}  /* DELETE, give the width the the child 
> anchors instead */
> div#nav li.main:hover { /* this class is superficial since it could be easily 
> overrule */
>       background: #8E9BBB;  /* DELETE, aplly this to a:hover */
>       background-position: 0 0;  /* DELETE, one fix for sticky bug, this 
> means that you are feeding the script to IE7 */
> }
> /* The above five selectors and declaration blocks can be completely removed 
> */
> 
> 
> div#nav li a {display: block; padding: 3px 6px 3px 6px; text-decoration: 
> none;}
> /* width: 72px; removed, no change in FF but effect in IE uncertain
> 
> This width is overrule by width auto below
>  */
> 
> div#nav>ul a {width: auto; } /* DELETE WHOLE SELECTOR */
> /* I don't see that this has any affect right now, but it's part of an IE6 
> work-around
> 
> This is because you have display block above, the anchor now behaves as a 
> block element
> */
> 
> 
> div#nav ul.level2 li:hover { /* DELETE WHOLE SELECTOR, see new one below */
>       background: #FEF699; /* just one sticky hover bug fix */
> }
> 
> div#nav ul ul {
>       position: absolute;
>       left: -999em; /* CHANGE to 9999% to bring into view, ems don't work */
>       top: 22px; /* DELETE, this is why you have to do the magic jumpimg in 
> the first place
> 
> Since the anchor is a block, the height of it will pushed this ul below it */
>       width: 95px; /* DETETE */
>       border: 1px solid #8E9BBB; /* CHANHE, see below */
>       border-bottom: 0;  /* CHANHE, see below */
> }
> 
> div#nav ul ul li { /* DELETE WHOLE SELECTOR */
>       border-bottom: 1px solid #8E9BBB; /* DELETE, give the border to the 
> anchor li li a */
>       text-align: right; /* DELETE, this make it hard to read */
> }
> 
> div#nav ul ul ul li {border-bottom: 1px solid #8E9BBB; text-align: left;} /* 
> DELETE, as above */
> 
> div#nav li:hover ul ul, div#nav li.sfhover ul ul {left: -999em;} /* DELETE, 
> see link */
> 
> div#nav li li:hover ul, div#nav li li.sfhover ul {top: 0; left: 95px;} /* 
> DELETE, see link */
> 
> 
> 
> This is the complete revised (and much lighter) CSS:
> 
> div#nav {
> float:left; position: relative; z-index:1; width: 770px; background: #FEF699; 
> border-bottom: 1px solid #8E9BBB;
> }
> div#nav ul {
> margin: 0; padding: 0;
> }
> div#nav li {
> position: relative; float: left; list-style: none; margin: 0;
> }
> div#nav li a {display: block; padding: 5px 10px; text-decoration: none;}
> div#nav li li a {width: 10em; border-top: 1px solid #8E9BBB; border-right: 
> 1px solid #8E9BBB;}
> div#nav li a:hover {background: #8E9BBB;} /* ADD */
> div#nav li a:focus, div#nav li a:focus {/* ADD color for accesibilty */} 
> div#nav li li a:hover {background: white;} /* ADD */
> div#nav li li a:focus, div#nav li li a:focus {/* ADD color for accesibilty 
> */} 
> 
> div#nav li:hover li a {background: white;} /* ADD, for unhover submenu items 
> */
> 
> div#nav ul ul {position: absolute; left: -9999%; border-left: 1px solid 
> #8E9BBB; border-bottom: 1px solid #8E9BBB; }
> /* positions submenus well off screen (hides them until the main menu item is 
> hovered)*/
> 
> div#nav li:hover ul ul, div#nav li.sfhover ul ul {left: -9999%;}
> /* prevents level 3 showing when level 1 hovered */
> 
> div#nav li:hover ul, div#nav li.sfhover ul, div#nav li li:hover ul, div#nav 
> li li.sfhover ul {left: 0;}
> 
> div#nav li li:hover ul, div#nav li li.sfhover ul {margin-left: 100%;}
> 
> 
> Now you can remove every single class form the HTML that is below div#nav. 
> Notice how there are no classes given above. Also it should work in most 
> browsers now. This menu [1] may aid in you giving different sub anchors 
> different widths. Also some box model hacks for IE5. This menu is explain 
> further in the main article [2]. Please note that the article as it stand is 
> a complete mess and need urgent revision. 
> 
> 
> BTW, that page has markup validation errors [3].

Thank you.  In making a small amendment I had misplaced a closing HTML comment 
(-->), but I've corrected that now, and it validates again.
> 
> 
> 
> 1. <http://css-class.com/articles/ursidae/bears4.htm>
> 2. <http://css-class.com/articles/ursidae/bears4.htm>
> 3. <http://validator.w3.org/>
> 
> Alan
> 
> http://css-class.com/
> 
> ______________________________________________________________________
> css-discuss [EMAIL PROTECTED]
> http://www.css-discuss.org/mailman/listinfo/css-d
> List wiki/FAQ -- http://css-discuss.incutio.com/
> List policies -- http://css-discuss.org/policies.html
> Supported by evolt.org -- http://www.evolt.org/help_support_evolt/
> 
> --
> This email has been verified as Virus free.
> Virus Protection and more available at http://www.plus.net
> 

-- 
Tim Dawson
Maolbhuidhe
Fionnphort
Isle of Mull  PA66 6BP

01681 700718
______________________________________________________________________
css-discuss [EMAIL PROTECTED]
http://www.css-discuss.org/mailman/listinfo/css-d
List wiki/FAQ -- http://css-discuss.incutio.com/
List policies -- http://css-discuss.org/policies.html
Supported by evolt.org -- http://www.evolt.org/help_support_evolt/

Reply via email to