Well, I spent the weekend quickly working up a new theme for my site. I wanted something was a) a lot simpler, and b) showed off some of the cool new CSS 3 features available.
Cool CSS features used:
- Columns (Gecko, Webkit, Presto)
- Web fonts (Gecko, Webkit, Presto, Trident)
- CSS gradients (Webkit)
- CSS transforms (Gecko, Webkit)
- Text shadow (Gecko, Webkit, Presto)
- Assorted CSS3 selectors and pseudo-selectors (Gecko, Webkit, Presto)
In case you’re wondering, Gecko is Firefox’s rendering engine, Webkit is Chrome & Safari, Presto is Opera, and Trident is Internet Explorer. Now you know. Tell your friends!
All in all, lots of fun stuff to play with.
Rendering bugs
Of course, the fun thing about playing with cutting edge features is that you get to find all sorts of bizarre glitches and rendering issues. Here are a few that I’ve noticed during development.
Missing letters (Presto)
Letters just seem to go missing randomly from words — “you” becomes “yo”, for example. I think that this is caused either wholly by the downloaded font, the use of columns, or a combination of the two. Quite annoying.
Pixel creep in columns (Webkit)
Every now and then, pixels from a word in column B will find their way to the very bottom of column A. It’s even worse when you set a box-shadow on an element — the top of the shadow is rendered in the previous column. I’m guessing that Webkit’s column-rendering algorithm basically renders the entire area in a long strip, then cuts it into chunks and shoves them on the page. Annoying.
Disappearing column rules (Gecko)
Apparently, setting the “overflow” property (or “overflow-x” or “overflow-y”) on an element that is rendered in columns prevents the column rule from being rendered in Gecko. I really have no idea why this should be the case — it’s a very strange behaviour.
HTML 5 element styling (Trident)
Internet Explorer can’t style elements that aren’t bog-standard HTML. Unless you use “document.createElement(‘elemName’)” on them first. Ridiculous.
Leave a Reply