The evolution of CSS (Cascading Style Sheets) made the web much more attractive. Before CSS became popular, ugly HTML sites littered the Internet. CSS is much more elegant and flexible. Unfortunately, each browser is broken in some unique way, and you may need a CSS hack to make it render properly.
But CSS hacks have to be used with care. Technology columnist Peter-Paul Koch wrote in his “Keep It Simple” column that CSS hacks threaten the very goal of CSS itself, which is to keep web programming simple and direct. He says that locating and refining CSS hacks is a huge waste of time, and is counter to the goal of sound Web development.
You might wish that all the browser builders get together in one room and iron out all the little differences between them that make web design so frustrating. Alas, that is likely a pipe dream. For example, there are situations where you may need to focus on one particular browser due to its technology. CSS hacks make certain that specific styles are used by certain browsers, or not, depending on the situation.
Internet Explorer has needed more CSS hacks than the rest combined. Perhaps the Godfather of CSS hacks is the Internet Explorer Box Model Hack. Created by computer whiz Tantek Çelik, it gave thankful web designers a way to get around a bug in Internet Explorer.
One of the easiest ways to handle Internet Explorer is to section it off. Create a stylesheet that that only targets Internet Explorer and loads based on conditional statements. This strategy keeps your funky Internet Explorer code away from the rest of your stylesheets. Keep in mind that Internet Explorer 10 will not render or read any Conditional Comments.
Like with many browsers, you will most likely run into more problems with older versions of Firefox than the latest iterations. One strategy is to use the -moz prefix used by Firefox extension creators for style definition. Other browsers have no need for this code, so it will only kick in for Firefox browsers. By the way, the Firebug extension now makes it easier than ever to copy CSS properties into the clipboard, making working with Firefox CSS faster and smoother.
One way to hack Opera is to use a pseudo class. A pseudo class is data about an element that is contained in the document, except you cannot access it through designated attributes. For example, : -o-prefocus is a pseudo class that lets you design form elements. Other browsers don’t understand it and will overlook it.
CSS hacks create extra code, mess up your clean stylesheet and make maintenance a headache. The aforementioned Peter-Paul Koch stated that CSS hacks are actually dangerous because you could create hacks that add rules that are not really necessary. He says hackers often believe the bugs will get fixed in the next update, but that is not always the case. Still, sometimes they cannot be avoided. Until browser bugs are completely eradicated, keep your CSS hacks in your back pocket and ready to go.