Avenidanet » Diseño gráfico y web

CSS Especificidad. Evitando el uso de !important.

4 Junio 2009 Un comentario

Algo que desconocía sobre el CSS era la especificidad, la forma en que los browser interpretan como aplicar las propiedades CSS.

Su funcionamiento es muy sencillo, dando un valor a cada sentencia

  • 0 – Selector universal *
  • 1 – Los elementos (div, p, span, etc)
  • 10 – Las clases (.clase1, .clase2)
  • 100 – Los IDs  (#id1, #id2)
  • 1000 – Los estilos directos en el atributo style (style=”color: red”)

Ejemplo:

#content p a {} /*(100 + 1 + 1 = 102)*/

Con este procedimiento es factible evitar el uso de !important, ya que este parámetro no es válido en todo los browsers. Sencillamente agregando un selector que nos haga aumentar la suma.

Ejemplo:

#content p a {} /* 102 */
#parrafo a {}/* 101 */

(Donde párrafo se encuentra dentro #content)

La clase que se aplica en este sigue siendo la primera, entonces para lograr que la segunda nos funcione:

#content #parrafo a {}
/* 201 */

Dándonos una suma mucho mayor a 102.

Un comentario »

  • Jauscr dice:

    Para aquellos que sufrimos de las incompatibilidades en los browsers, y que ademas nos dimos cuenta que IE8 se comporta diferente al IE7 con respecto al CSS (lo que significa mas brete T_T) … aqui les tengo un hack muy bueno para IE8:

    CSS normal

    .my_class{height:165px;}

    IE8 HACK:

    .my_class{height /*\**/ :1695px \9;}

    noten la diferencia … y funciona jeje, espero les sirva para resolver un pokito los problemas que a veces se presentan … saludos !!

Los geeks opinan!

Deja un comentario, o haz un trackback en tu sitio web. Tambien puedes suscribirte a los comentarios via RSS.

Da tu aporte, comenta sobre esta entrada...

Usa cualquiera de estas etiquetas:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">