7/1/09

Hacks CSS: Selectores para un navegador en particular

Distingir entre Google Chrome y Safari con CSS pese a que los dos usan el mismo motor de renderizado


/* Google Chrome hack */
body:nth-of-type(1) .elementOrClassName {
/* properties go here */
}
/* Safari hack */
body:first-of-type .elementOrClassName{
/* properties go here */
}

Depurar estilos en Firefox, ie6 e ie7


#MyDiv {margin : 10px 10px 10px 10px;}
/* IE6 Only (start html hack)*/
* html #MyDiv {margin : 5px 5px 5px 5px;}
/* IE7 Only */
*:first-child+html #MyDiv {margin : 2px 2px 2px 2px;} 
/* IE7 and IE6 */
*:first-child+html {} * html {}
/* Safari 3 y Opera 9 Only*/
@media screen and (-webkit-min-device-pixel-ratio:0) {
 /* Reglas de Safari 3.0 y Opera 9  */
}

Hack para IE7 y navegadores modernos


 html>body #content {} 

Hack para navegadores modernos no IE7


 html>/**/body #content {} 

Hack para Opera 9 y anteriores


 html:first-child #content {} 

Hack para Safari


 html[xmlns*=""] body:last-child #content {} 

Star-html hack, no valida


 /* Hides from IE5-mac \*/
 * html .buggybox {height: 1%;}/*Holly Hack*/
 /* End hide from IE5-mac */ 

alternativa, usar !important, si valida


/* Hides from IE5-mac \*/
.buggybox {
 height: auto !important;
 height: 1%;
}
/* End hide from IE5-mac */