The IE CSS Bug Which Cost Me A Month’s Salary
kalzumeus.com
kalzumeus.com
http://www.microsoft.com/Downloads/details.aspx?FamilyID=21e...
For my own system I used MSDN to get working installs of XP on my Mac in VirtualBox.
You also need to convert the VHD to VDI. I've done this on Mac using Q (http://www.kju-app.org/) and these simple commands.
/Applications/Q.app/Contents/MacOS/qemu-img convert -O raw -f vpc "input.vhd" temp.bin
VBoxManage convertdd temp.bin "output.vdi"
Download it here:
http://www.microsoft.com/downloads/details.aspx?FamilyID=8e6...
You're going to need to find a way to test on a real version of the app. Xenocode(.com) used to have sandboxed versions of all the browsers available, which was perfect, but they've since removed the page. So now the images provided by MS (referenced in parent) are your best best.
I still think it's invaluable - rather than setting up three separate VMs, I can just have one on IE6, and launch 7/8 as needed (I usually just save-state at that point so I'm not constantly launching them).
I think the howto to convert them I found on stackoverflow or something, can't remember now.
I have XP_IE6, XP_IE7, XP_IE8 working fine.
BTW article linked in OP suggest you can use any format for the image, and suggests .jpg. This is very bad choice—save jpegs for larger photos, this format does not work well for icons/buttons, PNG (preferred) or GIF would be much better option.
For myself I tend to iplement a change in a separate file and leave the old page in place. Then as I test each browser I use the browser ID to redirect people to the changed page as I test their browser. Then when I'm done I replace the old page and remove the redirect.
It sounds strange but I've found it's a good way to get changes out as soon as possible while not risking what happen to the author here.
I'm not affiliated with them in any way, they've just made my one of my jobs much easier for not much money, and they hang out on HN sometimes besides.
Appreciate the plug! Tony Founder - CrossBrowserTesting.com
<button><img src="/img/sign_up_button.png" alt="Sign Up" /></button>
The versatility of the <button> element is really remarkable, and it works fine in all browsers. I highly recommend anyone currently using <input type="submit"> to change to <button type="submit">
1. IE does not honor the value attribute of the button tag, rather it submits the button html content as the value.
2. IE6 passes ALL button elements to the action page of the form, not just the one clicked.
There are javascript onsubmit hacks to work around both of these issues but it is just really annoying to have to do so, and easy to over look. It might work fine at first with one button but then you add a second or rely on the button value a year later and don't test in IE6 and you are screwed.
"...the HTML input element had a background image specified and a text-indent:-9000px property applied to it, which puts the standard text for the button way off the screen, leaving only the background image visible."
then you're doing it wrong. What the hell?
Also regarding the PNG/JPEG rule of thumb, it should be: JPEG for photographic images, PNG or GIF for everything else on the web. Large doesn't and shouldn't necessitate JPEG. Then you end up with ugly, artifacted, JPEG screenshots, and these already exist aplenty.
grumbles about Netscape letting go of its mantle...
I'm currently solving this with two approaches:
First, use crossbrowsertesting.com -- they are really great people, I was among their first users, they keep improving their site and service, it's easy, and for the money it's absolutely worth it. Every time I make changes to my libraries which might even possibly be handled differently by different browsers, I log in to CBT and test the browsers. (I've found the best order to be FF -> Safari -> Chrome -> IE 8 -> IE 7 -> IE 6; usually by the time I get to IE 6, everything's working OK.)
Second, stop using CSS for (fancy) layout. It wasn't really intended to do it, and I don't expect CSS3 support to fix the usual problems I have with CSS2. So, one of my more recent projects is a simplified layout language parsed in JavaScript that makes certain things very easy. It's also very fast.
A push button was, in IE6 only, positioned behind an image with a higher z-index. The (Watir) automated test worked fine, because the button was there and a scripted event could hit it. But human users couldn't see it.
The advertising is specifically setup to refresh every few minutes with new adverts relevant to the discussion.
Only problem is, I had typo'd:
setTimeout instead of setInterval = only one refresh!
Bugs like that and patio's are a little hard to spot, since everything is still working, money is still being made, just not as well as it should be :)
Except in my case, the bucket was used to stop a shotgun blast and then I started filling it from a fire hydrant.
Thanks for taking one for the team. Many dollars died to get this information.
patio11 clearly said in his blog post that CSS wasn't his bailiwick. Instead of simply saying, "You did it wrong!", you might say:
Here's a link to some popular CSS image replacement techniques: http://css-tricks.com/css-image-replacement/
It's also worth pointing out that, in that article, patio11's text-indent hack is cited as probably the most-commonly-used method.
I didn't mean to comment directly to the author but make a general statement of the current state of the art in CSS: to achieve an effect use the craziest hacks one can find. As you said, patio probably just found that code on the web and used it.
Also to expand on it a little more, I use(ed) this trick a lot, and I've never had the image shifted off the page. I'd be interested to see the HTML that actually broke.
If you've been at it for a few (and I do mean "a few") years, building sites that work in all major browsers (FF, IE 6 - 8, well, alright, Safari) turns out to be not the most difficult thing in the world.
(Then, of course, check how it looks in IE 6 and 8. I say keep IE 7 open because surveys have said it has the most users of any IE version at the moment.)
Maybe it's because I use Linode and not Slicehost, or Python rather than Rails, but this doesn't sounds like that scary a prospect to me...
In fact, it sounds a lot like my development environment (simply s/web console/ssh session/).
While I agree that playing with production code is generally a bad idea, there are certainly times it's called for (granted, 2AM may not be one of those times, if a few hours later you can be in your "normal" development environment)
I would like to be smug and say, "vim can't do this", but that's not true. If editing files on your production server sucks, it's because you didn't set things up appropriately. (Yes, I agree with the comment below that you shouldn't edit your production app. But if you are in a coffee shop at 2 am and a CSS problem is preventing half your users from using your site, you might just want to make a quick hack that fixes the problem and worry about "best practices" when you get up in the morning.)
Have you looked at how they have it set up? Your link goes into a queue for the servers that are called "Factories." It is a massive distributed computing environment like SETI where people volunteer their computers to take the screen shots and upload them to the web for you to view.
But he is no longer working on the project himself.
http://litmusapp.com/browser-testing http://www.browsera.com/ http://www.spoon.net/browsers/
The last doesn't work for me (Mac using either FF or Safari) but the other two seem to. I haven't used any of these personally, and am not affiliated with them, just listing some options for others to check out.
Every possible build of IE that you might want to test against. It is too bad he got hit by this bug, but he and/or his designer should be looking at the site with the same tools as his customers. Thanks to non-standard standards you really can't trust that anything you make is cross-browser until you confirm it.
http://74.125.155.132/search?q=cache:http://www.kalzumeus.co...
Great post - any chance you could also post the css that caused the problem? I use negative text indent all the time to do exactly this and haven't noticed any IE problems - it'd be handy to know what combination of styles causes this for future reference!
http://www.bingocardcreator.com/files/old-site/registration....
The CSS links in that are good, but the relevant snippet is the following. The second definition is the one that, when added on top of the first, fixes it for IE.
…and then fall back on a VMWare of XP with IETester.
Obviously won't work for dynamic apps, but it would have caught this one.
http://my-debugbar.com/wiki/IETester/HomePage
It's the only multi-IE solution I've found (other than VMs) that keeps form elements working properly across versions.