Christian Heilmann

CSS Hacks and Filters review

Tuesday, August 16th, 2005 at 4:22 pm

Cover of CSS Hacks and Filters I hate using CSS hacks and filters. I strongly believe it is not my job to cover up the mistakes of browser vendors, and I hate relying on things I cannot test myself. As I also cannot be bothered to hunt the web for every new hack and workaround I considered buying this title to put it on my desk and get it over with. This was basically necessary as a lot of developers consider naming their hacks their main valve of creativity and you have to guess what a guillotine bug might be. I admire the work of Big John, Holly, Ingo Chao and other CSS stormtroopers, but please tell us what the bug and the fix is, put it in a fat h1 and we will all find it easier (this applies for any bug, I would love to find “XHTML and Flash” without looking for “Flash Satay”, too).

Well, the book does what is says on the cover, it introduces the reader to every conceivable CSS hack and filter out there, and does it nicely and thoroughly. You get a good index and cross reference table to learn how to make which browser behave. Of course the web based resources like Position Is Everything or dithered.com are still a good idea to visit, as they will be more up to date, but for a quick off-line check, this book is a great resource.

The book covers almost all topics, that were written about at alistapart.com in the last years, rounded corners, dropshadows, print styles and multi level dropdown navigations (have mercy).

Sadly enough however, it seemed that the book had to be bigger, which is why the writer also dwelled in the JavaScript, PHP, ASP and Cold Fusion area telling the reader how to hack for CSS in those. Yes, you can send different CSS to different browsers via JavaScript, but it also means that your CSS hack will only work when JavaScript is available and you mix HTML, JavaScript and CSS, which makes maintenance in a multi user environment a real nightmare.
The ever so cool JavaScript Style Switcher example is not backed up by a server side solution, which means that users without scripting support get all the stylesheets offered without having a chance to reach them (unless their browser does that anyways, in which case even a server side enhanced one would be superfluous).
The PHP chapter fails to mention that you also need to set the expiration header to make your CSS still cacheable.
The accessibility chapter rightfully explains font sizing and print media, hints at Joe Clark’s Big stark and chunky low vision article but ends with an explanation how to hide skip links, thus making them useless for sighted keyboard users.
It is nice that these topics are covered, but the way they just scratch the surface of the issues I personally consider them more harm than helpful.

It is all in all worth its money though, especially if your development environment is Dreamweaver and you want a good “How do I use CSS with today’s browsers” resource.

Share on Mastodon (needs instance)

Share on Twitter

Newsletter

Check out the Dev Digest Newsletter I write every week for WeAreDevelopers. Latest issues:

Dev Digest 146: 🥱 React fatigue 📊 Query anything with SQL 🧠 AI News

Why it may not be needed to learn React, why Deepfake masks will be a big problem and your spirit animal in body fat! 

Dev Digest 147: Free Copilot! Panel: AI and devs! RTO is bad! Pi plays!

Free Copilot! Experts discuss what AI means for devs. Don't trust containers. Mandated RTO means brain drain. And Pi plays Pokemon!

Dev Digest 148: Behind the scenes of Dev Digest & end of the year reports.

In 50 editions of Dev Digest we gave you 2081 resources. Join us in looking back and learn about all the trends this year.

Dev Digest 149: Wordpress break, VW tracking leak, ChatGPT vs Google.

Slowly starting 2025 we look at ChatGPT vs Google, Copilot vs. Cursor and the state of AI crawlers to replace web search…

Dev Digest 150: Shifting manually to AI.

Manual coding is becoming less of a skill. How can we ensure the quality of generated code? Also, unpacking an APK can get you an AI model.

My other work: