• Drop-down menu does not work in IE6. That’s a very disappointing discovery, I must say. I like this theme very much.

    Unfortunately statistics show that IE6 is still out there and a lot of people are still using it. Otherwise I wouldn’t bother.

Viewing 15 replies - 16 through 30 (of 44 total)
  • Interesting. These stats are collected from a Ukrainian audience, aren’t they?

    “That is when I saw how my blog looks in IE5.5, well…”
    Interesting you should say that, because tests conducted in the west showed only 6% of people used IE6, and nobody was using IE5.5 (thankfully). It might be that things are that different in Eastern Europe.

    But, be realistic: there’s a whole audience of people out there who could likely be coerced to upgrade their browsers if you but provide them a message to do so. That’s what you’ve been doing so, I hope? It doesn’t matter if the message is blatant and in-your-face, or small and subtle, the thing is, these people need to know they can’t just sit around in the putrid dark ages.

    Moderator cubecolour

    (@numeeja)

    Alhadis you seem to be missing the point of this thread which is that some people need to support IE6. No one supports IE6 for fun. I hate it as much as you do and I wish it would die, but if customers insist on supporting it, you can only

    1. Spend valuable time fixing it and absorb it into the fixed project cost
    2. Quote an additional charge for the extra work & give them the option
    3. Refuse to do it and possibly lose the job.

    If you have a hobby site and are happy to tell the small amount of IE6 visitors to go away, then that is fine, However if the target audience is businesses and that business is still standardized on IE6, the IT dept don’t give a monkey’s whether some random site looks OK or not. Their IE6 only policy could be due to inertia, laziness, or a desire to restrict personal browsing by employees (by making the web ugly). As long as their employees can use their legacy internal systems which may have been built to work in IE6 and would cost money to make work in proper browsers, then putting a banner onscreen to tell them that their browser sucks isn’t going to make an ounce of difference.

    I’m not sticking up for IE6, just understanding why some people still have to use it.

    Here are the stats I’m seeing for a medical site in London, UK with a local non-business audience, but where people may be visiting from their workplace:

    Firefox 3 47.8%
    Internet Explorer 8 15.3%
    Internet Explorer 6 15.2%
    Internet Explorer 7 8.9%
    Google Chrome 7.7%
    Safari 4.2%
    Internet Explorer 5 0.5%
    Opera 0.4%

    I don’t think my client would be happy telling 15% of the people that visit that they cannot make an appointment because their browser is cr@p

    “I don’t think my client would be happy telling 15% of the people that visit that they cannot make an appointment because their browser is cr@p”

    I’ve explained this situation pretty thoroughly with clients, and they’re mostly willing to have a modest “please upgrade” message on their site for users of older browsers, provided the rest of the site is workable.

    Now, don’t get me wrong. I’m not saying leave it garbled for idiot and/or incarcerated IE6 users to stumble through (even if that’s how I’d prefer to leave my personal site). But my approach would be to have more complicated functionality like dropdown menus cut off from older browsers altogether, and just leave the remaining subnavigation accessible in a sidebar in the related subpages (naturally this is going to depend on the design, but I’ve always found gracefully degrading pages to be more helpful than trying to accommodate for IE6 users).

    Premise is simple: Somebody wants to continue using an older, crappier browser? Fine. Here’s the site, it’s functional, but I’ve no incentive to make it pretty for you. You want the luxury of having a beautiful Internet, then it isn’t going to be served to you on a silver platter anymore.

    Thread Starter Aleksei Tepljakov

    (@firelord)

    Whatever. Bottom line is that support for IE6 was achieved (hopefully this solution will work for most people).

    Moderator t-p

    (@t-p)

    Whatever. Bottom line is that support for IE6 was achieved (hopefully this solution will work for most people).

    I second it.

    Also, Firelord, your efforts and the spirit of sharing are very much appreciated.

    Thread Starter Aleksei Tepljakov

    (@firelord)

    Dang. Make that partially achieved. Found a flaw with the current solution. Try nesting multiple pages. Although the menus still work, the end result is quite different from menu behavior in normal browsers.

    Thus the topic switches back to unresolved until someone proposes a better solution. It’s mostly about tweaking the CSS, really. The main problem is that IE6 doesn’t support the “>” selector.

    I myself will probably be using only the parent page → child page formula (2 levels max), so I will not consider the job of perfecting the solution my top priority.

    Can you adapt something Stu Nicholls pure CSS menu that supports IE6? Stu Nicholls | CSSplay | Validating drop down cross-browser menu

    Thread Starter Aleksei Tepljakov

    (@firelord)

    songdogtech, looks good. But I think adapting it would require messing with the script that generates the menu (to add the necessary classes to anchor elements and such). Currently I’m trying to achieve a pure CSS solution which would not require any changes in the theme code.

    So here’s an updated solution that fixes the nesting problem entirely for the first five page levels. Yes, I realize that the code is getting bigger and bigger and it isn’t elegant (I gather nothing is elegant with IE6), and it’s all because of the unsupported “>” selector and no good means of replacing it. The good news is that five levels should be enough for most users.

    Here we go…

    /* Begin IE6 hacks -------------------------------------- */
    /* Fix header menu width extending beyond the image */
    * html #access .menu-header, div.menu
    {
    	width: 928px;
    }
    
    /* Fix avatars floating over text in comments */
    * html .commentlist .avatar
    {
    	left: -55px;
    }
    
    /* Fix menu font */
    * html #access
    {
    	font-family: "Helvetica Neue", Arial, Helvetica, "Nimbus Sans L", sans-serif;
    }
    
    /* Fix drop-down menu */
    * html body
    {
    	behavior: url('http://your.site/path_to_wordpress/wp-content/themes/twentyten/csshover3.htc');
    }
    
    * html #access li:hover a,
    * html #access ul ul:hover a
    {
    	color:#fff;
    	background:#333;
    }
    
    /* Page displaying hacks /*
    
    /* Because IE6 doesn't support the child selector ">",		*/
    /* providing a good common styling method is rather hard.	*/
    /* This is why this hack takes care of only the first 5		*/
    /* levels of nesting (it will be OK for ~95% of the users)	*/
    
    /* First level */
    * html #access li:hover ul
    {
    	display:block;
    }
    
    * html #access li:hover ul ul
    {
    	display:none;
    }
    
    /* First level highlight fix */
    * html #access li:hover ul a
    {
    	color: #aaa;
    }
    
    * html #access li li:hover a
    {
    	color: #fff;
    }
    
    /* Second level */
    * html #access li li:hover ul
    {
    	display:block;
    }
    
    * html #access li li:hover ul ul
    {
    	display:none;
    }
    
    /* Second level highlight fix */
    * html #access li li:hover ul a
    {
    	color: #aaa;
    }
    
    * html #access li li li:hover a
    {
    	color: #fff;
    }
    
    /* Third level */
    * html #access li li li:hover ul
    {
    	display:block;
    }
    
    * html #access li li li:hover ul ul
    {
    	display:none;
    }
    
    /* Third level highlight fix */
    * html #access li li li:hover ul a
    {
    	color: #aaa;
    }
    
    * html #access li li li li:hover a
    {
    	color: #fff;
    }
    
    /* Fourth level */
    * html #access li li li li:hover ul
    {
    	display:block;
    }
    
    * html #access li li li li:hover ul ul
    {
    	display:none;
    }
    
    /* Fourth level highlight fix */
    * html #access li li li li:hover ul a
    {
    	color: #aaa;
    }
    
    * html #access li li li li li:hover a
    {
    	color: #fff;
    }
    
    /* Fifth level */
    * html #access li li li li li:hover ul
    {
    	display:block;
    }
    
    * html #access li li li li li:hover ul ul
    {
    	display:none;
    }
    
    /* Fifth level highlight fix */
    * html #access li li li li li:hover ul a
    {
    	color: #aaa;
    }
    
    * html #access li li li li li li:hover a
    {
    	color: #fff;
    }
    
    /* Final fix - all further nested items will show up at once */
    * html #access li li li li li li:hover ul
    {
    	display:block;
    }
    
    /* Final highlight fix */
    * html #access li li li li li li:hover ul a
    {
    	color: #aaa;
    }
    
    * html #access ul li.current_page_item a,
    * html #access ul li.current-menu-ancestor a,
    * html #access ul li.current-menu-item a,
    * html #access ul li.current-menu-parent a
    {
    	color: #fff;
    }
    
    * html #access ul li.current_page_item a,
    * html #access ul li.current-menu-ancestor a,
    * html #access ul li.current-menu-item a,
    * html #access ul li.current-menu-parent a,
    * html #access ul li a:hover
    {
    	color:#fff;
    }
    /* End IE6 hacks ---------------------------------------- */

    Feel free to propose a better, universal solution.

    Moderator t-p

    (@t-p)

    Thanks firelord,

    Please pardon my ignorance,
    (1) what is page “nesting”
    (2) and what is “page levels”.

    I am trying to understand these terms so that I can determine if my site (personal) has nesting problem or not.

    If I don’t have “nesting” problem, does it mean I can use your previous hack and not worry about this new hack?

    T-P: “Nesting” simply refers to the hierarchy of a submenu, and how subpages are laid out in a navigation menu. To take a basic example:

    Example Of Page Hierarchy ‘Nesting’

    Remembering that pages are sorted like a hierarchy, you have one list of pages sorted under another. WordPress outputs the page tree like this (note that I’ve stripped out most of the attributes for clarity):

    <ul>
    	<li><a title="Home">Home</a></li>
    	<li><a title="About">About</a>
    		<ul>
    			<li><a title="Alpha Breed">Alpha Breed</a>
    				<ul>
    					<li><a title="Psycroptitude">Psycroptitude</a></li>
    				</ul>
    			</li>
    			<li><a title="Beta Breed">Beta Breed</a></li>
    			<li><a title="Human Release Candidate 3.0">Human Release Candidate 3.0</a></li>
    			<li><a title="More Than Human">More Than Human</a></li>
    		</ul>
    	</li>
    
    	<li><a title="Publications">Publications</a></li>
    		<li><a title="Stop">Stop</a>
    			<ul>
    				<li><a title="Supporting">Supporting</a></li>
    				<li><a title="Shit">Shit</a>
    					<ul>
    						<li><a title="Browsers,">Browsers,</a></li>
    						<li><a title="The">The</a>
    							<ul>
    								<li><a title="Future">Future</a></li>
    								<li><a title="Is">Is</a></li>
    							</ul>
    						</li>
    						<li><a title="Our">Our</a>
    							<ul>
    								<li><a title="Choice">Choice</a></li>
    							</ul>
    						</li>
    					</ul>
    				</li>
    			</ul>
    	</li>
    </ul>

    Which, without formatting of course, would result in a list looking like this.

    Now, what you’re all trying to do is make things *pretty* for IE6 users. You’re killing yourselves. The key here is to make the content accessible and navigable for older browsers, and it doesn’t necessarily have to be done in the style of a dropdown menu. Just hide the subpage links in the nav bar so only the top level elements are visible, and have the subpages listed on each particular section when you go to that page. I don’t think IE6 users are going to care about having to make one more click to get to a certain subpage.

    Thread Starter Aleksei Tepljakov

    (@firelord)

    t-p, here’s a concrete example (pages are in Russian).

    (videos)

    Thread Starter Aleksei Tepljakov

    (@firelord)

    Here’s an alternative solution based on Dean Edwards’ script. It fixes the major problems, however you might want to keep the style hack for fixing the avatars in the comments (everything else can be removed).

    To use it download, install and activate this plugin: ie7compatfix.zip

    Note that it has a couple of drawbacks:

    • Relies on JavaScript;
    • Has a severe performance hit.

    I will do a little more research on the subject. My goal is to retain the HTC hack performance while fixing the child selector issue in an elegant way.

    If I achieve this, I will most likely issue another plugin for IE6 support with 2010 (based on CSS and JavaScript).

    Thread Starter Aleksei Tepljakov

    (@firelord)

    Due to time/resource limitations I won’t be improving the proposed fixes further. Please feel free to suggest any improvements and style fixes I might have missed.

    Moderator t-p

    (@t-p)

    Hi Firelord,

    while validation the style.css at W3C,

    I noticed the following item results in error:
    * html body
    any suggestion how to eliminate this error?

    Thanks.

    Moderator cubecolour

    (@numeeja)

    you could put the ie6-only stuff into a separate stylesheet which is included using a conditional comment – then you could take out the * from the * html body which the validator is complaining about (although the validator wouldn’t look at a conditionally included ie6 stylesheet)

    Kudos to Firelord for his work on fixing the ie6 compatability – the solutions offered here make it possible to use a theme based on 2010 or a child theme on top of 2010 usable on a site that has to work for ie6 users.

Viewing 15 replies - 16 through 30 (of 44 total)
  • The topic ‘Drop-down menus won’t work in Internet Explorer 6 (twentyten theme)’ is closed to new replies.