Skip to main content

Search and Top Navigation

#8844 closed bug (fixed)

Opened November 22, 2012 02:00PM UTC

Closed April 23, 2013 03:42AM UTC

Last modified June 06, 2014 01:33PM UTC

Menu: Internet explorer 10 renders bullets in submenus

Reported by: Mamen Owned by:
Priority: minor Milestone: 1.10.3
Component: ui.menu Version: 1.9.1
Keywords: Cc:
Blocked by: Blocking:
Description

IE10 renders list-styles on the <li>s

This seems to be only on sub menus. Possible since they starts out as hidden.

Test here:

http://jqueryui.com/menu/

select "Delphi" or "Salzburg". Bullets appear.

Tested on IE10 (Windows 7)

Attachments (0)
Change History (19)

Changed November 23, 2012 02:02PM UTC by tj.vantoll comment:1

status: newopen
summary: Internet explorer 10 renders bullets in menuMenu: Internet explorer 10 renders bullets in submenus

Confirmed. I see the problem in IE10 and not IE < 10. I'll try to minify this one a bit.

Changed November 23, 2012 02:07PM UTC by Mamen comment:2

Setting the css after it is visible seems to fix the problem. (remove/add class?)

Changed November 23, 2012 02:42PM UTC by tj.vantoll comment:3

Might be the same issue as #8677.

Changed November 23, 2012 03:24PM UTC by tj.vantoll comment:4

Here's a reduced test case that shows the issue - http://jsfiddle.net/tj_vantoll/v4MJX/.

@Mamen could you fork my jsFiddle and show how setting the CSS after the submenu is visible works around the problem?

Changed November 24, 2012 12:38AM UTC by Mamen comment:5

This fixes the problem in IE10.

http://jsfiddle.net/mrmamen/T3Sgm/

I've also tested in IE10 for Windows 8 now.

Changed November 25, 2012 08:08PM UTC by tj.vantoll comment:6

Replying to [comment:5 Mamen]:

This fixes the problem in IE10. http://jsfiddle.net/mrmamen/T3Sgm/ I've also tested in IE10 for Windows 8 now.

Thanks.

This is almost certainly the same issue as #8677 which was closed as wontfix. That being said #8677 was a pretty minor issue whereas with this one the default look has major visible issues.

Changed January 13, 2013 01:22PM UTC by gdonkers comment:7

I've found the same problem with the menubar(). Got a better solution also for menu().

See mu jsFiddle based on yours: http://jsfiddle.net/RT9Xz/

just adding css:

li, li li, li li li {

list-style-type: none;

}

Changed January 14, 2013 01:36PM UTC by tj.vantoll comment:8

Replying to [comment:7 gdonkers]:

I've found the same problem with the menubar(). Got a better solution also for menu(). See mu jsFiddle based on yours: http://jsfiddle.net/RT9Xz/ just adding css: li, li li, li li li { list-style-type: none; }

Good find.

li, li { list-style-type: none; } 
indeed fixes the issue, but this isn't something we can apply globally. Whenever I try to incorporate
.ui-menu
or
.ui-menu-item
into the selector it doesn't work anymore, which is just bizarre - http://jsfiddle.net/tj_vantoll/jaRbf/1/.

Can anyone come up with a CSS way of fixing this that limits the rules to

<li>
s in a
.ui-menu
?

Changed January 20, 2013 11:29PM UTC by gdonkers comment:9

_comment0: Replying to [comment:8 tj.vantoll]: \ > Replying to [comment:7 gdonkers]: \ > > I've found the same problem with the menubar(). Got a better solution also for menu(). \ > > See mu jsFiddle based on yours: http://jsfiddle.net/RT9Xz/ \ > > \ > > just adding css: \ > > li, li li, li li li { \ > > list-style-type: none; \ > > } \ > \ > Good find. {{{li, li { list-style-type: none; } }}} indeed fixes the issue, but this isn't something we can apply globally. Whenever I try to incorporate {{{.ui-menu}}} or {{{.ui-menu-item}}} into the selector it doesn't work anymore, which is just bizarre - http://jsfiddle.net/tj_vantoll/jaRbf/1/. \ > \ > Can anyone come up with a CSS way of fixing this that limits the rules to {{{<li>}}}s in a {{{.ui-menu}}}? \ \ Who that was strange. But I've found the solution: add the {{{ display: inline; }}} to it. \ http://jsfiddle.net/aeCxq/1358755240547566

Replying to [comment:8 tj.vantoll]:

Replying to [comment:7 gdonkers]: > I've found the same problem with the menubar(). Got a better solution also for menu(). > See mu jsFiddle based on yours: http://jsfiddle.net/RT9Xz/ > > just adding css: > li, li li, li li li { > list-style-type: none; > } Good find.
li, li { list-style-type: none; } 
indeed fixes the issue, but this isn't something we can apply globally. Whenever I try to incorporate
.ui-menu
or
.ui-menu-item
into the selector it doesn't work anymore, which is just bizarre - http://jsfiddle.net/tj_vantoll/jaRbf/1/. Can anyone come up with a CSS way of fixing this that limits the rules to
<li>
s in a
.ui-menu
?

Who that was strange. But I've found the solution: add the

 display: inline; 
to it.

http://jsfiddle.net/aeCxq/

edit: Crap, I didn't check it in an different browser, i.e. in Safari for Mac it doesn't work. Can we make it an only IE10 css or find an different solution?

Changed January 25, 2013 09:23PM UTC by tj.vantoll comment:10

milestone: 1.10.0none

Changed February 21, 2013 12:42PM UTC by gtraxx comment:11

Hi, Fix bug with :

li.ui-menu-item { 
  /* This fixes the IE10 issue */
  list-style-type: none;
}

Changed February 22, 2013 03:02AM UTC by tj.vantoll comment:12

Replying to [comment:11 gtraxx]:

Hi, Fix bug with :
> li.ui-menu-item { 
>   /* This fixes the IE10 issue */
>   list-style-type: none;
> }
> 

I'm still seeing it http://jsfiddle.net/tj_vantoll/jaRbf/3/.

Changed April 19, 2013 02:48PM UTC by fetis comment:13

I think this can work as fix

#!css
.ui-menu-item {
  /* IE10 fix */
  list-style-image: url(data:0);
}

I can't say how badly to have fake image here. But I think it's better than to have real url like url(blank.gif)

Changed April 20, 2013 02:58AM UTC by tj.vantoll comment:14

Replying to [comment:13 fetis]:

I think this can work as fix
> #!css
> .ui-menu-item {
>   /* IE10 fix */
>   list-style-image: url(data:0);
> }
> 
I can't say how badly to have fake image here. But I think it's better than to have real url like url(blank.gif)

Very clever and it works!

url(data:0)
sends out an invalid request so you're right that we want a real image. We don't have a small / transparent image in the project (I suppose we could add one), but sending the smallest possible transparent data-uri'd image seems to work fine (http://stackoverflow.com/questions/6018611/smallest-data-uri-image-possible-for-a-transparent-image).

Tested in IE6 - 10, Firefox, Chrome, Safari, and Opera and I didn't notice any adverse effects. Pull request: https://github.com/jquery/jquery-ui/pull/962

Changed April 23, 2013 03:42AM UTC by TJ VanToll comment:15

resolution: → fixed
status: openclosed

Menu: Add a transparent list-style-image to menu items. Fixed #8844 - Menu: IE 10 renders bullets in submenus

Changeset: 64a39d9b0d5710729653b185eae427853608744b

Changed April 24, 2013 01:58AM UTC by TJ VanToll comment:16

Menu: Add a transparent list-style-image to menu items. Fixed #8844 - Menu: IE 10 renders bullets in submenus

(cherry picked from commit 64a39d9b0d5710729653b185eae427853608744b)

Changeset: 329974b2c6313fdbdceec1820bf7e687c8ae47ef

Changed April 24, 2013 01:59AM UTC by tj.vantoll comment:17

milestone: none1.10.3

Changed June 05, 2014 05:17PM UTC by philw comment:18

_comment0: This causes problems on IE7 for SSL systems, giving a chap the old "this page contains a mix of secure and insecure items" problem we all used to know and love. \ \ Yes, yes, I know only insane people and major governments use IE7, but it's supported, and those people (the insane ones I suppose) pay my wages. The issue is related to an IE7 defect, logged somewhere or other, where you apply an image using JS which is fully HTTPS served, but IE7 doesn't realise that, and barfs with the message. Government users cannot turn that message off, so that's no work-around. \ \ My dirty hack to get my customers going again is to put an IE7 conditional comment in there which gets rid of the problem, comme ca: \ .ui-menu .ui-meni-item {list-style-image:none} \ \ Thanks to a bunch of government security, the powerful debugging tools of IE7 and the diminutive size of the system I'm fixing, that one line is worth a few quid, so I'll put it here as it may help the next person. I found it the hard way, but full points for marking the diff with this ticket number so I could come right here to make it messy.1401989118278994

This ''appears'' to cause problems on IE7 for SSL systems, giving a chap the old "this page contains a mix of secure and insecure items" problem we all used to know and love.

Yes, yes, I know only insane people and major governments use IE7, but it's supported, and those people (the insane ones I suppose) pay my wages. The issue is related to an IE7 defect, logged somewhere or other, where you apply an image using JS which is fully HTTPS served, but IE7 doesn't realise that, and barfs with the message. Government users cannot turn that message off, so that's no work-around.

My dirty hack to get my customers going again is to put an IE7 conditional comment in there which gets rid of the problem, comme ca:

.ui-menu .ui-meni-item {list-style-image:none}

Thanks to a bunch of government security, the powerful debugging tools of IE7 and the diminutive size of the system I'm fixing, that one line is worth a few quid, so I'll put it here as it may help the next person. I found it the hard way, but full points for marking the diff with this ticket number so I could come right here to make it messy.

I say "appears", because you made the change ages ago, and I only just hit the problem, so I'm a bit suspicious. Still, this fixes it. I just want to note what I found here, not to re-open this or anything.

Changed June 06, 2014 01:33PM UTC by tj.vantoll comment:19

Replying to [comment:18 philw]:

This ''appears'' to cause problems on IE7 for SSL systems, giving a chap the old "this page contains a mix of secure and insecure items" problem we all used to know and love. Yes, yes, I know only insane people and major governments use IE7, but it's supported, and those people (the insane ones I suppose) pay my wages. The issue is related to an IE7 defect, logged somewhere or other, where you apply an image using JS which is fully HTTPS served, but IE7 doesn't realise that, and barfs with the message. Government users cannot turn that message off, so that's no work-around. My dirty hack to get my customers going again is to put an IE7 conditional comment in there which gets rid of the problem, comme ca: .ui-menu .ui-meni-item {list-style-image:none} Thanks to a bunch of government security, the powerful debugging tools of IE7 and the diminutive size of the system I'm fixing, that one line is worth a few quid, so I'll put it here as it may help the next person. I found it the hard way, but full points for marking the diff with this ticket number so I could come right here to make it messy. I say "appears", because you made the change ages ago, and I only just hit the problem, so I'm a bit suspicious. Still, this fixes it. I just want to note what I found here, not to re-open this or anything.

Interesting, I just confirmed this at https://jqueryui.com/resources/demos/menu/default.html, and verified the behavior does not occur in IE8.

Technically, we could add a

.ui-menu .ui-menu-item { *list-style-image: none; 
} rule, but since we no longer support IE7 I think we'll avoid doing that. Thanks for posting this here as it'll help others that need to support IE7 work through this.