¡Ojo! Hago directos en Twitch sobre desarrollo web, ¿Te apuntas? ManzDev

css
3

Escrito por

¿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.

RELACIONADOS 5 pseudoselectores CSS que quizás no conocías RELACIONADOS 5 pseudoselectores CSS que quizás no conocías
x 5 pseudoselectores CSS que quizás no conocías
Manz

3 comentarios

Publica tu opinión