Trucos HTML: condicional en Internet Explorer

13 comentarios · 12.412 lecturas · html y css

Dentro de la gran cantidad de chapucerías con respecto a los estándares W3C que han cometido nuestros amigos de Microsoft en su querido Internet Explorer, hubo algún desarrollador que tuvo una brillante idea: la de implementar un sistema de condicionales dentro de un comentario SGML.

Me explico. El motor del Internet Explorer es capaz de reconocer dentro de un un condicional con el cuál indicarle hacer una acción determinada si el navegador usado es el que se especifica. El formato es el siguiente:

<!--[if (condicional) IE (versión)]>
... código HTML ...
<![endif]-->

Donde condicional es:

  • gte : mayor o igual que
  • gt : mayor que
  • lt : menor que
  • lte : menor o igual que
  • (nada) : igual que

Y en versión podemos indicar la versión del Internet Explorer deseada. Así podrían quedar cosas como las siguientes:

Si nuestro navegador es anterior al IE6...
<!--[if lt IE 6 ]>
Tu versión de Internet Explorer es demasiado antigua.
<![endif]-->

Si nuestro navegador es superior al IE5.5 carga una hoja de estilos determinada...
<!--[if gte IE 5.500 ]>
<link rel="stylesheet" type="text/css" href="estilosIE.css">.
<![endif]-->

Si nuestro navegador es IE en cualquier versión...
<!--[if IE]>
¡Estás usando Internet Explorer! ¿Porqué no te bajas Firefox? ;-)
<![endif]-->

Esto puede ser ideal para diseñar soluciones y CSS Hacks para webs estándar que están perfectamente diseñadas pero se ven mal en el navegador del lado oscuro... al menos hasta que salga el esperado IE7.


Trucos en patrones de selectores CSS

2 comentarios · 4.630 lecturas · html y css
¿Quien había dicho que el HTML+CSS tiene pocas posibilidades? Es poco conocido, pero existen unos patrones MUY utiles para establecer estilos según nos interese. Totalmente estándar y diseñado por el consorcio W3C. Lo explico a continuación:

Pongamos por ejemplo en este caso, dos enlaces: una página web, y un documento PDF de descarga, que queremos diferenciar visualmente y mediante estilos CSS según ese contenido:

<a href="http://www.google.es" title="web">Ir a google</a>
<a href="http://www.nosolousabilidad.com/cursos/Referencia%20CSS.pdf" title="pdf">Referencia CSS</a>

Esto nos aparecería así, y como podemos ver, no se diferencia en nada uno del otro:

Ir a google
Referencia CSS

El truco pues, reside en especificar con un selector CSS el contenido que tienen esos enlaces. A continuación, el fichero CSS:

a[title="web"] { color : red; }
a[title="pdf"] { color : green; }

Hemos especificado que la etiqueta de enlaces ( a[alt="web"] ), que tenga el atributo de título ( a[title="web"] ) con el valor exacto "web" ( a[title="web"] ) tenga las propiedades que hemos definido entre llaves ( {} ), en este caso el color del texto rojo. Por lo tanto los enlaces quedarían así:

Ir a google
Referencia CSS

Esto, así de simple, no deja de ser una pequeña curiosidad, pero combinandolo con más estilos pueden quedar cosas realmente brillantes:

a[title="web"]:before { content : url("http://www.emezeta.com/pagina.png"); }
a[title="pdf"]:before { content : url("http://www.emezeta.com/ficheropdf.png"); }


Este ejemplo, coloca un icono previamente creado de una página web (pagina.png), o de un fichero PDF (ficheropdf.png) antes de los enlaces. Asi el usuario sabrá a donde apunta el enlace, antes de pinchar sobre el o de mover el ratón sobre el hipervinculo. Se me ocurren cosas tan interesantes como una combinación de un :hover de un enlace y un cursor para el ratón, para que al mover nuestro ratón sobre un enlace en lugar de la flecha del cursor, nos aparezca un icono de Acrobat, una pequeña foto indicando que el enlace es una imagen, o el icono del emule si es un enlace ed2k.

Más interesante aún es que en el CSS2 el W3C incluye la posibilidad de hacer encajar un enlace con varios patrones usando ~= en lugar de = ( a[title~="web"] ). De esta forma, si en el atributo alt del enlace añadimos varias palabras separadas por un espacio (ejemplo: title="web pdf"), el buen navegador captaría las propiedades de los dos codigos CSS que habíamos visto.

Finalmente, también podríamos irnos un poco más allá, hasta el CSS3 y usar las combinaciones de expresiones regulares en CSS, que sin duda son mucho más utiles:

a[href^="ed2k://"]:before { content : "Descarga emule: "; }
a[href$=".doc"]:before { content : "Descarga word: "; }


En el primero de los casos estamos aplicando el estilo a los enlaces con el atributo alt que comience por ed2k:// (descarga emule o similar), y en el segundo estamos centrandonos en los enlaces que finalicen en la extensión .doc.

Páginas: 1 ... 6 ... 7


Artículo de http://www.emezeta.com/

6 consultas efectuadas / Página generada en 0.031 segundos

Programado íntegramente por José Román (Manz) en XHTML y CSS estándar.

Sindicado bajo Feed RSS. Contenido bajo licencia Creative Commons

Estadísticas de visitas · Términos y condiciones · Contacto · Publicidad · Preguntas frecuentes (FAQ)