Angry in the Great White North is morphing again. My attempt to run the tabs vertically worked reasonably well until I tried to fix the spacing between the tabs. Suddenly, Internet Explorer and Opera and Firefox were unable to agree on just what a margin or a padding value meant to a list item.
Tabs were stomping on top of each other and illegible or spaced so far apart that people with lower resolution monitors would be lucky to see three or four tabs.
So I gave up. Folded like a cheap suit.
For the record, Opera and Firefox looked the same, but Internet Explorer was always the odd man out.
I grabbed a simpler tab-like implementation, which seems to work well in all browsers. The colours are all wrong, but they'll be corrected once I've had a chance to finish off the coding.
The compromise is that the tabs are more button-like than tab-like. I was using margins and borders to create the rounded tab effect originally, but lining up the elements turned into a nightmare. Lining up the borders of the tabs would cause the spacing between the tabs to alter, for no apparent reason. And the behaviour was different in each browser.
I was also committed to not use Java to implement the button/tabs, but only CSS. It's still pure CSS, but a lot simpler CSS.
It shouldn't be this hard.
Back in the early 90s, I was working on military and space projects. The computer language we used was Ada. Ada was a beauty of a language. Strongly typed with near bulletproof semantics, it still is the language for safety critical systems.
But what made Ada such a powerful tool was not the language itself, but the validation facility. The Ada Compiler Validation Capability, or ACVCs, were designed to strike terror into the hearts of compiler writers. Well, maybe not terror, but the ever growing body of static and dynamic test cases had to be properly handled by the Ada compiler in order for an Ada compiler to be labeled compliant. Every year, the ACVCs grew in size, and compilers had to revalidated. The ACVCs covered both verifying that the Ada compiler properly compiled and executed good Ada programs, but also that it rejected programs with errors in them, and with reasonable error messages. Every subtle semantic rule and interaction was exercised by the ACVCs.
Why don't we have something like the ACVCs for CSS? Why is it that Internet Explorer (now at version 7), Opera (version 9), and Firefox (version 2) can't agree how to render anything but the most vanilla CSS directives? If we could have a validation capability...but then the ACVCs had the US Department of Defense behind it. I suppose that Microsoft could simply ignore any attempt to create a certification for a browser's ability to handle CSS, since there is no one large consumer of CSS that can insist on it.
Unless of course, Microsoft itself created a CSS validation capability...now there's an idea.
I guess we're stuck with inconsistent implementations of CSS. That's too bad. Too much time and effort is spent on presentation instead of content. I know because I've generated no fresh content in a week. Well, back to real writing. I'll fix the colours on the weekend and put this user interface nonsense on the shelf for a while. Maybe until the next version of IE comes out.