javascript : hover fix IE 6 +
$.ie6CssFix = function() {
if($.browser.msie && $.browser.version < 7) {
var cssRules = [], newStyleSheet = document.createStyleSheet();
$("style,link[type=text/css]").each(function() {
if(this.href) {
$.get(this.href,function(cssText) {
parseStyleSheet(cssText);
});
} else {
parseStyleSheet(this.innerHTML);
}
});
function parseStyleSheet(cssText) {
var cssText = cssText.replace(/\s+/g,'');
var arr = cssText.split("}");
var l = arr.length;
for(var i=0; i < l; i++) {
if(arr[i] != "") {
parseRule(arr[i] + "}");
}
}
}
function parseRule(rule) {
var pseudo = rule.replace(/[^:]+:([a-z-]+).*/i, '$1');
if(/(hover|after|focus)/i.test(pseudo)) {
var prefix = "ie6fix-";
var element = rule.replace(/:(hover|after|before|focus).*$/, '');
var className = prefix + pseudo;
var style = rule.match(/\{(.*)\}/)[1];
var h = getPseudo(pseudo);
if(h) {
h(element,className);
}
newStyleSheet.addRule(element + "." + className,style);
}
}
function handleHover(e,c) {
$(e).hover(function() {$(this).addClass(c);}, function() {$(this).removeClass(c);});
}
function handleFocus(e,c) {
$(e).focus(function() { $(this).addClass(c); }).blur(function() {$(this).removeClass(c);});
}
function handleAfter(e,c) {
$(e).after(
$("<" + e + "></" + e + ">").addClass(c)
);
}
function getPseudo(pseudo) {
switch (pseudo) {
case "hover": return handleHover;
case "focus": return handleFocus;
case "after": return handleAfter;
default: return false;
}
}
}
};
$(function() {
$.ie6CssFix();
});
: http://lovepeacenukes.com/jquery/ie6cssfix/