In IE8 a collapsed tree expands behind content lower on the page, rather than pushing it down the page, as per the attached screenshots. I did not test if other versions of IE have this bug. I did test that the widget in question works in Chrome, even with the patch applied. I did not test other browsers.

The attached patch fixes the issue by removing some offending CSS that made the wrapper <div> an inline-block. However since there is no documentation around this line of CSS, it is not clear what feature or bug it is intended to solve. So removing it with this may break something else.

Comments

1000Li’s picture

Thank you for the patch, I've just come across the same problem in iE7. I have applied your patch and so far it works very well and doesn't break anything else. Thank you.

1000Li’s picture

P.S. Hmm i've taken a closer look at my site and in my case the patch seems to be working only with the "Leaves option" enabled. With this option disabled, the expand labels are positioned above checkboxes, not next to checkboxes. I'm getting this bug in IE.

Bevan’s picture

Status: Needs review » Needs work

Can you provide a screenshot? Or note what CSS needs to be fixed and/or how?

chris_hall_hu_cheng’s picture

The CSS is essentially broken in various ways for IE7 and IE8 (not sure about other versions).

I managed to hack together some css that fixed IE7 (because our client was using this) but a real hack so will try to fix properly and post details.

spcalpo’s picture

I would be interested in any hacks/fixes you've put together for this issue, chris.

Bevan’s picture

StatusFileSize
new34.22 KB

This is a screenshot of the bug this patch introduces with the "Leaves only" option off, as per comment #2.

paulap’s picture

Title: Slider layout broken in IE » Slider layout broken in IE (<=8)
StatusFileSize
new42.84 KB

Hi!

This is a real problem. Most of all internet users use IE <= 8.

We use this module together with the profile2 module. And use tax fields on the registration page. That looks ugly...

Two major problems:
1. the tax-terms aren't not in the same line like the checkbox (or line break)
2. if we expand a tax-term to overlays with the content

Attached there is a screenshot.

Wr
paulap

paulap’s picture

If you need help we can support. We can test it...

bartk’s picture

Man, I hate IE.

I don't remember exactly why I used an inline block for the div. My fear if I take it out at this point, even if it doesn't affect my own site, is that it might break things for someone else.

I think the best bet would be to make some conditional CSS files (one for IE7, one for IE8) that override those particular attributes only when the browser in question is being used. Trying to make the same stylesheet work on real browsers *and* IE always leads to a big mess.

chris_hall_hu_cheng’s picture

Apologies for the late reply, I am probably going to have a go at a proper fix over the Christmas break will post anything useful back then.

drywall’s picture

StatusFileSize
new322 bytes

Here's the patch I developed off the 7.x-2.x branch. Version for 1.x branch coming shortly.

drywall’s picture

StatusFileSize
new322 bytes

And here's a version of that same patch for the current 7.x-1.6 release, which is actually the 7.x-1.3-dev branch in git. What a mess.

bartk’s picture

Status: Needs work » Closed (fixed)

The patch as submitted breaks the existing layout in Firefox (and presumably other browsers as well). I've added a small CSS hack to 'fake' inline blocks in IE7 and 8, and it seems to work.

hephaestus’s picture

Status: Closed (fixed) » Closed (won't fix)

Hi,

Sorry to be the bearer of bad news, but this still seems to be an issue in IE8 on Windows XP (latest version, 8.0.6001.18702), which is unfortunately still very widely used.

Anyone have any ideas?

hephaestus’s picture

I've managed to get a test environment running for this combination. Microsoft offer a Virtual PC image of WinXP, with IE6 installed and desktop shortcuts for installing IE7 and IE8.

In testing I've found that resizing the window fixes the issue temporarily, however as soon as you cascade the open tree, it leaves the whitespace below it. If you resize the window again, the element below jumps up to fill the white space. The window only needs to resized by a single pixel.

The reference tree works correctly with IE8's browser mode set to IE7 Standards or IE8 Compatibility View modes. In both cases this sets the document mode to IE7 Standards. These settings can be changed by accessing IEs developer tools with F12, and then selecting browser mode on the far right of the toolbar.

hephaestus’s picture

Status: Closed (won't fix) » Active
adaddinsane’s picture

I had to solve this for a client but was completely unable to duplicate it. So I created a completely overkill solution based the clearfix style (since I had no idea what was causing it I applied it to each level of the HTML), and apparently this works:

/* Overkill attempt to solve the IE8 problem */

.field-widget-term-reference-tree:after,
.field-widget-term-reference-tree .form-type-checkbox-tree:after,
.field-widget-term-reference-tree .form-type-checkbox-tree .term-reference-tree:after,
.field-widget-term-reference-tree .form-type-checkbox-tree .term-reference-tree .term-reference-tree-level:after {
  content: ".";
  display: block;
  height: 0;
  clear: both;
  visibility: hidden;
  font-size:0;
}

Good luck.

Anonymous’s picture

Version: 7.x-1.2 » 7.x-1.x-dev
Status: Active » Needs review
StatusFileSize
new307 bytes

Here's a patch against the 7.x-1.x git branch that seems to fix the issue for me.
Tested in FF (Linux), IE8 (WinXP) & IE7 (WinXP).

The latest code has a CSS hack (using an asterisk (*) prefix) that targets IE7 & below. I simply changed it to use a '\9' suffix hack to target IE8 & below (see: http://www.gravitationalfx.com/css-hacks-for-ie-targeting-only-ie8-ie7-a...).

Matthew Davidson’s picture

Status: Needs review » Reviewed & tested by the community

Works for me.

vincer’s picture

The patch at the top of the thread basically works, however I simply added the following as a CSS override:

.field-widget-term-reference-tree > .form-item {
	display: block;
}

One of the concerns noted in the patch is changing the inline-block display, and that this change may have unknown issues, so I just added a child selector to limit the scope of the selector to target only the wrapper .form-item and not the .form-item elements inside the tree.

dave reid’s picture

Status: Reviewed & tested by the community » Needs work

Let's please add some inline documentation to the CSS in #19 explaining why and what versions of IE should be affected.

Delphine Lepers’s picture

Issue summary: View changes
StatusFileSize
new352 bytes

Submitting a new patch

Delphine Lepers’s picture

Status: Needs work » Needs review

Status: Needs review » Needs work

The last submitted patch, 22: slider_layout_broken_in_ie8-1277268-22.patch, failed testing. View results

AritoMelo’s picture

StatusFileSize
new449 bytes

Fix the previous patch #22 which the test has failed.

richardcanoe’s picture

Status: Needs work » Needs review
alex_optim’s picture

This is mistake?

-  *display: inline;
+  display: inline\9;
pifagor’s picture

Title: Slider layout broken in IE (<=8) » Slider layout broken in IE (<=9)
StatusFileSize
new855 bytes

These styles are for IE 9 only.
I've recreated the patch

pifagor’s picture

StatusFileSize
new853 bytes

  • alex_optim committed b7e3232 on 7.x-1.x
    Issue #1277268 by pifagor, alex_optim: Slider layout broken in IE (<=9).
    
alex_optim’s picture

Status: Needs review » Patch (to be ported)
alex_optim’s picture

Status: Patch (to be ported) » Fixed
alex_optim’s picture

Status: Fixed » Closed (fixed)