Thinking outside the box about CSS
CSS is an ever-evolving standard. It is easy to think of the CSS specification as set-in-stone.
A blog post entitled Today, the Trident Era Ends looks at the legacy of the Trident engine. A particular focus in placed upon ideas for CSS that did not quite make it into the final specification. Nevertheless, as the article shows, some of these ideas are proofs-of-concepts and prior art for concepts that are just making their way in the web today.
For example, I had no idea that Internet Explorer defaulted to including padding and border within the width of a box. I find this the intuitive way to calculate width. This is in contrast to the W3C box model which excludes these properties in it’s width calculation. Had the Internet Explorer model prevailed, the code in the Sensible CSS Defaults post could have been one line shorter: box-sizing: border-box;
would not be necessary.
This is not to say I agree with every step Internet Explorer took. The article also notes some ideas which I believe would have been harmful to the web. The implementation of a proprietary compression algorithm is a dodged bullet. Complex CSS expressions that get evaulated every render is another.
Interestingly, Internet Explorer had a way to transition between pages. This is something I assumed had to be down with JavaScript and CSS. IE used a meta tag, http-equiv="Page-Enter"
to accomplish this.
Overall, the article lists a bunch of interesting concepts. It also helped me break away from thinking that specifications are set-in-stone. It is a good reminder that CSS is an evolving specification which responds to vendor experimentation.