meyerweb.com

Skip to: site navigation/presentation
Skip to: Thoughts From Eric

Archive: 'Browsers' Category

That Acid Buzz

Just a few days after Chris Wilson’s post to IEblog, Håkon Wium Lie, CTO of Opera and one of the originators of CSS, published a column on news.com titled “The Acid2 Challenge to Microsoft“, outlining the intent to create “a test page… that will actively use features Web designers crave, such as fixed positioning of elements”. As indicated in his article and confirmed via the Buzz, the Web Standards Project is a partner with Håkon in the development of this new “test suite”, as it’s termed on the WaSP Buzz.

I don’t know about you, but as I read the article, several red flags went up and alarm bells rang in my head.

First off, the Acid2 challenge to Microsoft? Why only Microsoft? An acid test worthy of its name would expose bugs in every browser on the market today. The original test did exactly that, and helped change the face of the Web. In fact, if you’re still using IE/Mac, the first browser to actually get the Acid test correct, you can see it in action. Type about:tasman into the address bar, and there it is, with modified text.

Second, the original Acid test (which I haven’t linked to because it seems to longer be available on the Web) was part of a larger and more constructive effort. At the time, Acid test author Todd Fahrner was (as was I) a member of the WaSP’s CSS Action Committee. If that name doesn’t sound familiar, you might be more familiar with the CSS Samurai. One of the things the CSS AC did was to produce reports on the top ten failings of CSS support in various browsers. We didn’t just say, “Browser X should be better”. We wrote up what should be better, and why, and pointed to test cases illustrating the problems. The Acid test was justifiably famous, but it was in the end one test among many.

And those tests were tough for all browsers, not just one browser or one campany’s browsers. We weren’t partisan snipers, despite what many claimed. We worked to point the way toward better behavior on the part of all browsers by focusing on the problems specific to each browser.

I am no longer a member of the WaSP. When the first incarnation of the organization went into dormancy, the CSS AC went along with it. Although the new WaSP has asked me to join a few times, I have resisted for various reasons—personal, professional, and perceptual. I was also asked if I wanted to contribute to the Acid2 effort as an independent, and declined that as well. So in many ways, this post is the epitome of something I find distasteful: a person who has had every chance to make contributions, and instead criticizes. In my defense, I can say only that while I may have refused these invitations, it is not out of antagonism to the basic goal of the WaSP. I have every reason to want the WaSP to succeed in its goal of advancing the cause of standards on the Web.

But this Microsoft-centric campaign has me concerned, and ever so slightly appalled. The creation of a tough CSS test suite is a fantastic undertaking, something that is to be applauded and is probably long overdue. But to cast it as an effort being undertaken as a challenge to Microsoft not only starts it off on the wrong foot, it has the potential to taint not just the Acid2 effort, but the entire organization.

Exploring Better Standards Support

While I was preparing for SXSW, Chris Wilson—and there’s a name that takes me back a few years—posted an entry on IEblog about standards. I’m not going to excerpt any of it here because most of you have already read it. For the rest of you, go read it. As long as you don’t continue into the comments, it won’t take very long.

First off, let me say that I’ve known Chris for many years, and we get along great together. I have a lot of respect for him, and I firmly believe the feeling is mutual. He did incredible work in the very early years of CSS, and while some of that work may seem lacking when viewed in light of later implementations, it was that all-important first step on the journey of a thousand miles. If I ever make it to Seattle with a couple of days to spare, he’s right near the top of a pretty short list of people I’d do my utmost to find time to see while I was there. (I just added another person to that list a couple of days ago, actually, but that’s a story for another time.)

With a paragraph like that, you probably think I’m going to tear into him now. Nope.

I’m posting my thoughts on this for three reasons.

  1. Chris was nice enough to name-check meyerweb as a site that’s helped “[harvest] the collective knowledge of the web development community” with regard to standards. If nominations were being taken, I’d point to the css-discuss wiki before I would meyerweb, but nevertheless I’d like to think I’ve earned a place on that list—and I’m glad that Chris thinks so too.
  2. Some of my writing from the post “Unbreaking the Web” was quoted in a comment by Thomas Tallyce.
  3. The 800-pound gorilla is stirring. It’s hard not to share a few observations.

So as Chris points out, the IE team faces an enormous challenge. This is compounded by the enormous loss of IE developers over the past few years. Think about it. Would you work on a project that was the legal and administrative equivalent of a toxic cloud? Internet Explorer is the focal point of dozens of lawsuits, antitrust litigation, and more. It’s a project straitjacketed by its own success (however rightly or wrongly that success was achieved). I don’t have any direct knowledge of this, but the IE team has probably become the Marie Celeste of Microsoft, a doomed wanderer of the bureaucratic seas, staffed by a few trapped souls and the subject of whispered tales of horror among the engineers.

( “And there… dangling from the door handle… was a scripting hook!” )

Despite this recent legacy of pariahship, it would seem that resources are gathering behind Explorer, and not just on the security front. Chris says, and I have no reason to doubt him, that plans are afoot to add standards support to Explorer. My concern is over the fate of those plans, because the best-laid plans… you know. No matter how much the engineering team might want something, if their irresistible geek force encounters an immovable administrative object, well, my money’s on the object. The only hope is to interpret the object as damage and route around it, which is usually a lot harder to accomplish in a bureaucracy than it is in a network topology.

Chris’ post makes it very clear that backwards compatibility will not be sacrificed, at least in quirks mode. I wrote some thoughts along those lines in “Unbreaking the Web“, so I won’t repeat them here. In summary: improving standards support will not break the Web. It won’t even break the vast majority of sites, and any sites that do break will get sorted out in short order. With a public beta, those problems could be identified and solved well before the browser went final. Backwards compatibility is no longer a reasonable excuse for avoiding standards support.

And then there are the resource limitations. It’s hard to think of anything Microsoft does as lacking in resources, but just as there are hungry people in America, there are starving programs within Microsoft. I believe that, for some time now, the IE project has been living on a sub-subsistence diet. It will probably be hard to attract people to help feed it. The staffing requirements for regression testing alone would be daunting. I don’t envy the IE managers their task—all the more so because no matter what they do, it won’t be enough for some people. They’re going to get slammed. Their only real choice is in trying to pick the things for which they’ll be slammed less. If improving standards support in IE isn’t a corporate (or divisional) priority, they’re in for a world of hurt. Which is why I sincerely hope they’re a priority.

But neither is that a complete excuse. Working for a firm like Microsoft means taking on massive challenges, doing more than you thought possible with less than you should have available, pulling long hours and pounding your head against a wall in order to do the apparently impossible. That’s part of the job description, and being there is pretty much a matter of choice. I say this isn’t a complete excuse because, obviously, any given team can only accomplish so much. It just isn’t a “get out of jail free” card. If you’re going to tell us that standards are important and that support will be improved, it has to be a notable degree. There has to be evidence that a lot of work went into adding a lot of useful things, and fixing a lot of old problems. Again, this is because the promise was freely made, not because it’s what the Web Gods demand.

We all, and by that I mean “us Web designers and developers”, need to stay involved in this conversation. It’s easy to post a few thoughts, assume that they’ve been ignored, and let things drift. It’s also easy to assume that the entire IE team read your ideas and immediately agreed to every single last one of them because they’re so blindingly obviously critical, and then get completely enraged when they don’t show up in the final product. I for one plan to keep an eye on this situation, and to think about ways I could help the IE team.

Because if I truly care about standards—and I do—then I owe the IE team as much as I’ve given to the teams working on Firefox, Safari, Opera, and all the rest. We all do. Whatever we would have done for the least of these our browsers in the name of advancing standards support, we owe the Explorer team no less.

Chris did ask for specific requests, so here are my top ten CSS requests in priority order:

  1. Support all selectors—including CSS3 selectors, which I believe are stable enough to be implemented
  2. Clean up positioning and add fixed positioning
  3. Clean up floating/clearing
  4. min-/max-width/height (got that?)
  5. Fix problems with inline layout, especially the handling of top and bottom padding and margins on inline elements
  6. Arbitrary-element hover
  7. Focus styling for form elements
  8. Better printing support, including better page-break control and page orientation
  9. Support CSS table styling, including the table-centered display values
  10. Support generated content

…plus the unranked but still very important “fix bugs! fix bugs! fix bugs!”.

Did I miss anything important, or under- or over-value anything, on that CSS list? Let us know.

Tabular Weirdness

Recently I was doing some table styling for a client and ran into what I can only call tabular weirdness. There were two different things that I stumbled across, and interestingly, they were the kinds of problems you wouldn’t be likely to encounter in layout tables. These would come up much more often in data tables.

In the first case, the general idea was to put some space between the tables and the surrounding material, but as these were data tables, they came with captions. So I of course put the caption text in caption elements. That’s when things started to get inconsistent.

To be more precise, the problems began after I left Safari to check the page in other browsers. In Safari, you see, the caption’s element box is basically made a part of the table box. It sits, effectively, between the top table border and the top margin. That allows the caption’s width to inherently match the width of the table itself, and causes any top margin given to the table to sit above the caption. Makes sense, right? It certainly did to me.

However, according to section 17.4 of CSS2.1 and the figure that accompanies it, the caption sits entirely outside the table’s box, and that includes the table’s margin. The two are still tied together by the generation of an anonymous box, but the upshot is that if you give the table left and right margins, then the caption does not follow suit. If you give the table a top margin, it pushes the caption away from the table. This is the behavior evinced by Firefox 1.0, and as unintuitive as it might be, it’s what the specification demands.

The third piece of strangeness was found in IE/Win. What I’d done was simply said that some cell borders should be solid—nothing more complicated than border-bottom: 1px solid. The idea was that it would, as borders do, pick up the foreground color of the cell, but IE/Win had other ideas. As best I could tell, the borders were a light gray. You can see it happen in the testcase I constructed to create the images in this entry. Explicitly specifying a border color fixes the problem, of course, but it was a bit of weirdness I thought I’d pass along in case anyone runs into the same thing.

Don’t Care About Market Share

In a fashion vaguely reminiscent of the process by which weeds keep growing back no matter how you try to rid yourself of them, the question of browser market share has once again been rearing its foul, misshapen head. Dan kicked off a round of it over at Simplebits, but it’s recently been popping up other places as well. I heard discussions about market share at SES Chicago, perhaps unsurprisingly, but I’ve also been seeing the question on various mailing lists and other forums.

The only thing more frustrating than the persistent recurrence of this unnecessary question is the inappropriate gravity it seems to acquire in so many minds.

Look, I’ll make this very simple for everyone. If you’re trying to figure out what browsers to support (or not) in terms of layout consistency on a given site, then the answer is very easy. Whatever the site’s access logs tell you. End. Of. Story!

For example, the stats for the past few days’ worth of visitors to Complex Spiral Consulting tell me the following:

User AgentPortion of hits
Firefox 43%
IE6 30.8%
Mozilla 8.8%
Safari 8.6%
Opera 2.4%

(For those who are curious, IE5.5 makes up 0.8% of hits. Various flavors of IE5.x below IE5.5 total roughly 1.2%, but note that Windows and Mac users are lumped together there.)

Those statistics tell me quite a bit about the people who visit the CSC site, and I can use that information to decide what to do about browser support. You know what those numbers tell you about which browsers to support (or not) in your designs for sites on which you work? Absolutely squat. Anyone who uses those access statistics to make decisions for their own work is a fool, and a misinformed fool at that.

In every design, we have to ask what browsers need to have a consistent experience, which ones can be given a reduced experience, and which ones get no design at all. The user logs from another site are useless in trying to make this decision. The “global statistics” from firms like WebSideStory are just as useless in this case. They may be entirely accurate, but they are also entirely irrelevant when it comes to making design support decisions. The only stats that matter are the ones that come from the site you’re designing.

In a like manner, I don’t care if you think visitors to your site or some other favorite site of yours are an accurate reflection of the overall Internet population or not: that opinion is similarly irrelevant. It’s rather like me claiming that the people who come to our annual holiday party are an accurate reflection of partygoers in general. Maybe they are and maybe they aren’t, but either way I don’t think you should plan your all-night rave to accomodate the kinds of people who drop by our house to have homemade bread and soup and chat about babies, politics, science-fiction movies, and the weather. And vice versa.

(Do remember that your site’s stats may reflect its current behavior instead of your potential audience. If your site is already broken past the point of usefulness in Safari, then you’re going to see very low Safari numbers. Make sure that you’re comparing apples to apples, and only compare the numbers in your access logs for browsers that can already use the site.)

As for the related question of “at what percentage level do I decide a browser isn’t worth bothering about”—well, that’s really up to you, isn’t it? I certainly can’t tell you when it’s worthwhile to stop worrying about IE5.0, or Netscape 4.7, or Mosaic 1.2. I know what I think is appropriate for the sites I work on—and the process of finding the answer is different for every site. It has to be, because every site is different.

Now, if you want to share your user demographics with anyone who wants a peek, hey, have fun with that. If data exhibitionism is your thing, who am I to judge? Just don’t pretend that the bits of data you’re exposing to the world are representative of everyone else’s, because I guarantee you that they are not. As for anyone who happens to glance at your data: I hope they realize the same thing.

Unjustified Caption Text

I just stumbled across a browser bug this evening that I thought you all might like to know about. So we all know that IE6/Win supports text-align: justify, right? Wrong. Sorry, but it’s the truth: IE6 does not fully support text-align: justify. True, it mostly supports that declaration, but if you apply said declaration to a caption element, guess what? You get centered, non-justified text instead. It’s very much as though, in the case of caption elements, IE6 replaces justify with center.

I just thought I’d pass this along in case it might help anyone else avoid some furious head-scratching. And, I’m sorry to say, I don’t know of a workaround. If anyone finds one, please leave a comment to that effect.

This is a perfect illustration of how difficult it is to do comprehensive CSS testing. Every CSS support chart I’ve ever seen has marked down IE6 as supporting justified text; I mean, why wouldn’t they? It clearly did so… for the specific test cases used to create that support chart. The odds of a test page including a caption element are pretty vanishingly small, unless of course we’re talking about a test page that includes every single XHTML element in existence. And to test every element known for every property-value combination… well, I’ve talked about that before. No need to trample the same ground even flatter.

Unbreaking the Web

While I was in Florida with my family visiting both sets of parents, Tristan Nitot published an article titled “How Microsoft can support CSS2 without breaking the Web“. In it, Tristan points to a comment made by Gary Schare, Director of Windows Product Management at Microsoft, which was:

We could change the CSS support and many other standards elements within the browser rendering platform. But in doing so, we would also potentially break a lot of things.

(from Microsoft Windows Exec Talks IE, Firefox)

Tristan then goes on to refute this line of thinking. Generally speaking, I’m entirely in agreement with him. (As a disclaimer, Tristan and I worked together as members of the Netscape Standards Evangelism Team, and Tristan asked me for feedback on his article before it was published.)

Here’s the thing: in the Windows world, Explorer already significantly upgraded its standards support four different times. The most recent such upgrade was called IE6. That was the version that first added DOCTYPE switching to IE/Win. At that time, there were a great many changes made to the standards support, nearly every one for the better. For example, in standards mode, you could no longer throw around unitless numbers and have them interpreted as pixels, because that violated the CSS specification. You couldn’t set a height or width for an inline non-replaced element, because that too was incorrect. The interpretation of font-size keywords was changed to reflect the CSS specification instead of the HTML font-sizing regime. The box model was altered to follow CSS instead of the old IE way. In short, there was all kinds of stuff in there that would “break a lot of things”.

The Web rather steadfastly declined to be broken. Oh, sure, there were pages whose layout was altered—not many, thanks to the way DOCTYPE switching was implemented, but they were out there. Anyone who was relying on the IE/Win way of doing things but used a DOCTYPE that triggered standards mode (say, for example, a HTML 4.01 Transitional DOCTYPE with URI) ended up with a “broken” page. These problems were fixed by their authors, and that was that. I remember a number of forum posts about how “IE6 broke my design”, and the posts that helped those authors address the problem. In the case of old, unmaintained pages, they stayed broken, but odds are that next to nobody cared. Regardless, it isn’t exactly a point of major concern on any radars I’ve seen in the last three years.

Furthermore, IE6 fixed a number of parsing bugs that existed in previous versions. One of those was the bug on which Tantek Çelik’s “Box Model Hack” depended. However, the parsing bug was fixed in both quirks and standards modes, so the BMH utterly failed to work in IE6 no matter what DOCTYPE you used. That actually did break quite a few layouts, if I remember correctly. I also remember the day I discovered that they’d fixed the parsing bug in both standards and quirks modes. I swore at my monitor for a moment, and then actually thought about it. I realized that the inconvenience of removing a few CSS hacks, or at worst changing to different hacks, was a pittance to pay in comparison to the advances IE6 had made in terms of increased standards support.

So I fixed a few style sheets, tossed a hack out of my mental toolbox, and got on with my life. I contend that exactly the same thing would happen if a service pack were to add increased standards support to IE.

This is particularly true given that most of what IE should add would be, well, additions. As in, things that IE doesn’t even try to support now, and so almost nobody uses them. Think generated content. Think attribute selectors. Think fixed positioning. These are all things that, if they were added to IE, would break almost no pages at all. In fact, they’d make a small number of pages work better in IE.

For that incredibly small number of pages that would break (for whatever value of “break” you care to name) with improved standards support in IE6, I’m willing to bet that nearly all of them would get fixed right away. Why? Because they would be pages maintained by authors who actually want to use standards and care about doing things right.

Now, there is one area where I think the IE team would have to be careful about adding support, and that’s selectors. A lot of hide-from-IE CSS hacks these days are based on its failure to support the child selector; in fact, I use these a few places in the S5 style sheets. It is possible that adding support for child selectors to IE6 would be more harmful than beneficial. I say it’s possible because I don’t know. Nobody does—but Microsoft of all organizations has the ability to find out, and to act accordingly. They have the funding, the personnel, the skills, and the customer base. As Tristan said:

In its short, 2 1/2 year life, the Netscape Evangelism team helped literally thousands of authors and administrators of web sites around the world to improve their support for the W3C DOM and CSS Standards. If such a small group with limited resources can help change the web, imagine what Microsoft could do with its resources if it only tried.

Indeed.

Granted, the net stands still for no one, not even Microsoft. There have already been, and continue to be, efforts to graft better standards support onto IE despite itself: projects like PNG transparency fixes, whatever:hover, and IE7 take Microsoft’s proprietary behaviors and use them to make it easier to use open standards. (I adore the poetry of that.) The people behind those projects are already doing what Microsoft is apparently afraid to do, and they demonstrate why improving standards does not mean breaking the Web.

There’s one other point to consider. If IE/Win improved its standards support in any meaningful way, believe me when I say that the news would be shouted from the Web site of every standards advocate in the known universe. Nobody responsible for standards-oriented pages could avoid hearing about it. Any problems would be quickly explained, and adjustments made. Life would not only go on, but be better for developers and designers.

To sum up: the “more standards will break stuff” argument just doesn’t fly any more. Microsoft can figure out what to do that won’t break pages, and there’s a ton of things that are new-to-IE, the implementation of which will no more break pages than did the image toolbar. In cases that might cause breakage, Microsoft can determine—with community help, if they were to ask for it—how to minimize breakage while maximizing benefit. To claim that possible Web page breakage prevents Microsoft from increasing standards support makes about as much sense as to claim that possible program breakage prevents them from ever changing or improving their operating system.

Despite this, I don’t have much hope that we’ll see any improvements before Longhorn debuts. I think that’s a shame, because I remember when the IE team was gung-ho about standards. There were a number of very smart people who understood why standards were important, and were committed to doing their best to support standards in IE—not just on the Macintosh, but for Windows as well.

I do hope for Microsoft’s sake that those days return. Because the Web continues to move, and if they just stand there promising that everything will be better in Longhorn, they may well find themselves left behind.

Freezer Case

Since a few people asked for it, I’ve created a test file that reproduces the Internet Explorer freeze reported yesterday. You can find it with the title “Internet Explorer Freezes — BEWARE!“. If you follow that link with a non-IE browser, you should see a static copy of the “Ten Things To Do…” post, with two differences:

  1. I stripped off the theme stylesheet so the masthead graphic isn’t shown.
  2. I inserted a warning/explanatory comment near the top of the document.

Under the hood, the main difference is that the style sheets are all embedded in the document, so if you’re so inclined you can download that single page to your hard drive and fiddle with it to your heart’s content. If anyone can narrow down this problem to a very minimal test case, I’d love to see it. Refer back to “When Browsers Attack!” for notes on what I discovered. There may well be more to the story, but if so, I didn’t find it.

I’ll reiterate the warning, in case it somehow wasn’t clear enough: iif you load this document in IE/Win, the odds are very, very, very high that it will freeze Internet Explorer, necessitating a force-quit of the application. It may also crash Windows. If you don’t want those sorts of things to happen to you, then don’t load the document. Clear? Good.

When Browsers Attack!

Remember my recently posted conversation with Molly? Boy, am I ever feelin’ that today. In spades.

Some of you have noticed earlier today that things were presentationally unstable. Depending on when you dropped by, you would have seen raw document presentation with no author styles at all, or some chunks of the site’s usual styles but not others, or all of the usual styles with a few oddities thrown on top for good measure. For a few hours, during which I had to attend to something else, the site was fine except that in IE/Win, the main content column was quite a bit wider than usual, and some bits of content were visually exceeding the edges of the design box. All that was happening because I was turning styles on and off in an attempt to stop freezing Internet Explorer for Windows.

Freezing? Oh, yes. As in locking it up so that people had to use the Task Manager to force-quit the process. There were probably a few reboots out there as well; there were at least a couple here in Casa de Meyer. Ordinarily, I’d apologize. Not this time. If you want an apology, try finding the person or persons responsible for IE’s CSS handling, and demand an apology from them. I’m not taking the rap for this.

To set the stage, let me back up a couple of days. As I passed by Kat’s office, she called out, “Hey, how come my browser keeps getting screwed up?”

“Because it’s Explorer,” I said. “Next question?”

“Ha ha. Seriously, every time I try to view your ‘ten things to do in Cleveland‘ post, the computer crashes. I think there’s something wrong with it.”

Grumbling, I wandered over to her computer. Sure enough, the browser was completely frozen. She’d already called up the Task Manager and was forcing the browser to quit. She said it was the third time she’d had to do it. As I watched, the screen went blank, then drew the desktop color and stopped. The cursor appeared as an hourglass, and refused to change or even move.

Once the system had gone through a hard reboot, I fired up Netscape 7 and loaded up meyerweb. I surfed around to various posts. No problems at all. I then launched IE and loaded up the home page. No problem. I went to the offending post. Instant freeze.

After a few more invocations of the Fatal Freeze, I wandered out of her office again, muttering about Explorer and Windows and pondering the possibility that her computer had been infected with some kind of virus, malware, or other nastiness. But then, the next day, I got some e-mail reporting similar problems. Then Ian Firth managed to get a comment in about the problem on the post “Really Undoing html.css“, even though others were getting the Fatal Freeze on that very post. And he mentioned that it was happening in both IE and FeedDemon—which meant it was something in IE’s rendering engine, since FeedDemon just wraps itself around the engine. A similar report cropped up in the FeedDemon forums this morning, where it was mentioned that a similar problem had already been seen in the post “Standards Savings“. (Not that anybody had actually bothered to tell me, but hey, whatever.)

So I fired up VirtualPC this morning and tested the problem for myself. And sure enough, I was very quickly the latest resident of Lockup City. So I started narrowing down the cause. I’ll spare you all the nasty details (and foul language) of my bug hunt, and cut to the chase: the lockup was happening on entry pages where the post content included an element that used left padding. Blockquotes and lists were the prime triggers. There wasn’t an absolute 100% guarantee of trouble, but it was close. I could avoid the freeze by commenting out a single declaration in my main style sheet:

#main {
  margin: 0 15em 0 0;
  /* padding: 3em 4em 3em 4em; */
  border-right: 1px solid #AAA;
  background: #FFF;
  min-height: 30em;
}

That’s why the content was running rampant earlier today. I had to leave that line commented out for a few hours. But I knew that couldn’t be the real cause, because it didn’t cause freezes on the home page, or even on monthly or daily archive pages. The freeze only happened on an individual entry page where there was a padding-indented element inside the content column. Thus, the source was most likely to lie in style sheet that’s applied only to post pages.

So I started digging through my entry style sheet until I narrowed the problem down to this line:

.prev-next {margin: 0; padding: 0.25em 1% 0; 
  float: left; width: 98%;}

If I commented it out, and uncommented the padding declaration from before, there were no problems. So the culprit lay somewhere in the .prev-next rule. Anyone want to guess at the cause? Go ahead.

Oh, all right, I’ll tell you. It was float: left;. As soon as I removed that declaration, the IE6 freezing problem just melted away. So if you’ve encountered freezes while trying to view entry pages in the past, you shouldn’t any more. (If you do, please comment on this entry with the exact browser and OS you’re using.)

The original point of the float statement was to get the unordered list to wrap around the floated list items within it, since floated elements wrap around floated descendants (for more details, see my article “Containing Floats“). Since that was apparently a recipe for disaster, I modified the rule to read:

.prev-next {margin: 0; padding: 0.25em 1% 0; 
  width: 98%; height: 1em;}

It isn’t exactly the same as what I was doing before, but the result is close enough for now.

What else might I have done? Well, in all honesty, I thought seriously about leaving things status quo and letting IE users go hang. I don’t cater to potential crash bugs in NN4, for example; why should I make an exception for another browser? But as I always knew I would, I grumbled a bit and then made an accommodation for IE. I may one day restore the float for more modern browsers and use some sort of hack to hide it from IE/Win, but for now I’ll leave things be.

What’s odd to me is that the styles involved in triggering this problem have been in place literally for months. If this was a problem, it should have arisen before now. Yet the first I heard of this freeze bug was two days ago, and then all of a sudden I was hearing about it from multiple sources. If I’d been updating my CSS, that would be understandable, but I wasn’t. So what happened? Did the installed Explorer population just get spontaneously and collectively buggier over the weekend, or what? Is there a subtle worm running around adding bugs to IE’s rendering engine? I’m really at a loss here.

As to why that particular combination of styles would cause IE to freeze up, I’m completely at a loss. Not a clue in the world.

While I was mucking around in the CSS anyway, I decided to see if I could fix the rendering error in IE/Win that made the sidebar hang out over the vertical separator. I did, so far as I can tell. The problem there was the “Exploration” box and the styles I’d applied to it. Apparently, if you set a form element to width: 95%; margin-left 5%; and then set a text input within that form to width: 100%;, it all adds up to something like 120%, or something. So I did a little bit of a hack to hide the input element’s width value from IE/Win. The input box won’t be as wide for IE/Win users, but as far as I’m concerned that’s an acceptable loss.

I hope your morning was substantially less frustrating than mine.

February 2012
SMTWTFS
   
 1234
567891011
12131415161718
19202122232425
26272829  

Archives

Feeds

Extras