Yo me preguntaba si era posible utilizar los selectores CSS condicionales para detectar tipos de archivos de manera automática. La respuesta de EFI fue SI y muestra la técnica.
Primero que nada una advertencia repetida, este tipo de técnica, sólo funciona en los navegadores más modernos como FireFox 2.0, Safari, Opera 9 e IE7 (siempre que se haya definido DOCTYPE adecuadamente), en cualquier otro caso, los selectores serán ignorados.
El truco consiste en utilizar los "selectores de atributos". Por ejemplo, esto permitiría detectar todas las etiquetas A que contengan un vínculo a un archivo PDF:
a[href $='.pdf'] {
... propiedades ...
}

Este tipo de selector, se escribe inmediatamente después de la etiqueta y entre corchetes. Su contenido genérico es:
[atributo='valor']
en el caso anterior, el atributo es HREF y el valor utiliza uno de los "operadores" disponibles:
[atributo]
el atributo con cualquier valor: a[href] para todas las etiquetas A que tengan un atributo HREF.
[atributo='valor']
el atributo es exactamente igual al valor: a[href='http://google.com'] para todas las etiquetas A que tengan un atributo HREF="http://google.com".
[atributo^='palabra']
el atributo comienza con esa palabra: a[href='http'] para todas las etiquetas A que tengan un atributo HREF que comience con "http".
[atributo$='palabra']
el atributo termina con esa palabra: a[href='exe'] para todas las etiquetas A que tengan un atributo HREF que termine con "exe".
[atributo*='palabra']
el atributo posee la palabra en cualquier parte.
[atributo~='palabra palabra palabra']
si alguien me lo explica con claridad, lo agradecería :D
Aquí hay algunos ejemplos:
h1[title] {color: blue;} todos los elementos H1 con título, serán azules
span[class=example] {color: blue;} todos los SPAN cuya clase sea "example" serán azules
span[hello="Cleveland"][goodbye="Columbus"] {color: blue;} todos los SPAN cuyo atributo "hello" sea "Cleveland" y cuyo atributo "goodbye" sea "Columbus"
*[lang=fr] {display : none} oculta todos los elementos cuyo atributo "lang" sea "fr"
a[href $='.pdf'] {
padding-right: anchoImagen;
background: transparent url(URL_imagen) no-repeat center right;
}
Lo mismo, podríamos hacer para cualquier tipo de archivo o, variando el operador, seleccionar los vínculos que apunten a una dirección de correo:
a[href ^="mailto:"] {
padding-right: anchoImagen;
background: transparent url(URL_imagen) no-repeat center right;
}

[miatributo="eseste"] {
color: red;
}<a href="URL" miatributo="eseste"><un vínculo;>
<p miatributo="eseste"><un texto cualquiera;>
[atributo1^="palabra1"][atributo2$="palabra2"] {color: blue}
Podríamos extender el uso de los íconos adosados a los vínculos para que, en lugar de mostrar uno común a todos, nos muestre uno específico para cada URL, por ejemplo, leyendo el favicon de la página. Esta técnica requiere JavaScript y puede verificarse en Hyperlinks Cues with Favicons.

Primero, debemos identificar los vínculos, eso lo hacemos con a[href ^='http://'] pero NO TODOS, por ejemplo, no queremos que se adosen a los vínculos de la sidebar, ni a los footers, etc, sólo quermos que aparezcan en los posts, así que debemos limitar la selección, mirando en la plantilla cuál es el id o clase del bloque correspondiente, en general, en las plantillas de Blogger Beta es div.post-body, por lo tanto, la declaración sería:
div.post-body a[href ^='http://'] {
padding-right: anchoImagen;
background: transparent url(URLimagen) no-repeat center right;
}div.post-body a[href *='vagabundia'] {
padding-right: ancho;
background: transparent url(URLimagen) no-repeat center right;
}div.post-body a[href *='vagabundia'] {
background-image: none ;
padding-right: 0;
}div.post-body a[href $='.jpg'],
div.post-body a[href $='.gif'],
div.post-body a[href $='.png'] {
background-image: none ;
padding-right: 0;
}
La técnica es demasiado nueva y no hay demasiada información sobre el tema pero presiento que es una de las características más interesantes del CSS y aún hay mucho por explorar.
Algunas direcciones donde pueden bajarse paquetes de íconos:



































6 comentarios:
Que buen resumen !! Bien hecho.
Sobre los formatos jpg, etc, ya que el código era (es) el mismo era lógico pensar que hubiera un bicho por ahí, ya sea en mi plantilla, en blogger o tal vez en mi cerebro ;-). En cuanto a mi blog, es EFINews. En Blogger, claro.
Saludos...
Gracia por el comentario y por la información que permitió armar este resumen.
ummmm
¿que es posible que se me halla pasado es post? /:
¡es buenísimo! ;)
Jajajajaja, sí, es posible; es una técnica interesante :D
Que tal,
Oye se pueden poner mas de una condicional, con AND o algo por estilo.
Por ejemplo:
En el atributo display establece NONE, a los controles con ID que empiece con 'Contol' y termine con 'Delete'.
[ID ^='Control_'] and [ID $='_Delete']
{
Display: None;
}
Saludos,
Charly:
Para selecciones con varias condiciones se colocan las condiciones una al lado de la otra:
span[ID="NOMBRE"][class="OTRONOMBRE"] { display: none; }
Lo que no sabría responderte (pero puedes comprobarlo fácilmente) es si la condición, al referirse al mismo atributo, funciona o no, tal vez, sólo se tome la última. No hay un AND o algo semejante.
¿Quiere dejar un comentario?
Hay varios métodos posibles.
Uno de ellos es el formulario de comentarios que tan generosamente nos ha regalado Blogger y que funciona sólo de tanto en tanto. Su uso es aconsejable sólo en caso de ser una de esas personas a las que les gustan los retos y los desafíos.
¿No quiere arriesgarse? Haga click para ocultarlo y utilice las otras opciones.
Todos los archivos y demos alojados en Fileden han sido redireccionados y deberían estar funcionando correctamente.
De todos modos, también puede accederse a ellos a través de SkyDrive
Si le gusta ir a lo seguro utilice este botón para abrir los comentarios en una ventana modal en esta misma pagina.
Si añora tiempos idos, use este enlace para agregar un comentario al viejo estilo ...
Los comentarios están siendo moderados y serán publicados a la brevedad.