Wednesday, April 21, 2010

Cannot reset hasLayout for display:inline-block

Learned (to my horror) that, on IE7, using display:inline-block sets hasLayout=true, and that resetting display to inline does not also reset hasLayout. There's no way to reset it in this case. You can "!important" all you want and it won't work. See this article about hasLayout. This is one case when IE6 behaved better than IE7.

[I was having issues with SharePoint 2010's core CSS setting display:inline-block on the current breadcrumb span element. I adjusted the styles so the crumbs were shown in the usual linear manner (as opposed to a folder structure), but long crumb text ended up as an inline-block instead of wrapping properly to the next line. To get around it (without changing the core CSS), I added some jQuery to change the class attribute of the element to something else, just so the inline-block didn't get applied to the element anymore. And then realized later that modifying the ListSiteMapPath to use a different value for CurrentNodeStyle-CssClass will accomplish the same thing.]

No comments:

Post a Comment