Crear textos rellenos de imagen

WebKit (Safari, Google Chrome, Epiphany, Midori y alguno que otro más) soportan una caracteristica de CSS 3 bastante llamativa llamada background-clip, la cual se puede utilizar para hacer algunos efectos bien majos.

 

Vamos allá. Vamos a usar una imagen que será visible a través del texto.

 

La Idea

h1 {
 color: white;  /* Fallback: si por lo que sea no funciona hay que darle un color al texto, no? */
 background: url() no-repeat;
 -webkit-background-clip: text;
 -webkit-text-fill-color: transparent;
}

 

Ahí está, bien sencillo. Se establece un fondo para el elemento, se recorta y se establece que el color de relleno va a ser tranparente.

 

El Problema

Pues el gran problema es que esto solo funciona, como dijimos antes, con navegadores basados en webkit. Asi que, ¿qué ocurre si vemos la web en un navegador que no lo es?

Como puedes ver en el codigo de arriba, hemos declarado un color como color principal del texto. Este valor será invalidado por -webkit-text-fill-color en los navegadores que lo soporten, y en los que no, como tambien ignorarán -webkit-background-clip veremos la imagen realmente de fondo del texto (que estará en blanco, como definimos al principio)
Bueno, no es que sea lo mejor del mundo ¿verdad? Vamos a ver si lo podemos mejorar

 

Un “Falback” mejor

La herraienta definitiva para mejorar las degradaciones es Modernizr. Simplemente hay que incluir un pequeño Javascript en la página y añadir las clases al h1 de tu página indicando que el actual navegador es capaz de ello.

Aunque un no hay un test de esta caracteristica en Modernizr, pero por suerte hay un “hook” para ello.

 

<script src="modernizr-1.6.min.js"></script>
<script>
 Modernizr.addTest('backgroundclip',function(){
 var div = document.createElement('div');
 if ('backgroundClip' in div.style) return true;
 'Webkit Moz O ms Khtml'.replace(/([A-Za-z]*)/g,function(val){
 if (val+'BackgroundClip' in div.style) return true;
 });
 });
</script>

Ahora sabemos con certeza si el navegador con que estamos viendo la web soporta background-cpli o no, si lo hace, el tag h1 tendrá la clase backgroundclip, y si no, la no-backgroundclip. Así que ahora solo se aplicará el fondo si el navegador acepta background-clip.

 

.backgroundclip h1 {
 background: url(images/west.jpg) -100px -40px no-repeat;
 -webkit-background-clip: text;
 -webkit-text-fill-color: transparent;
}
h1 {
 color: orangered;
}


 
Ver demo
 
Fuente: CSS-tricks
 

2011-06-24 | Publicado en Blog, Diseño web | Etiquetado , | Deja un comentario

Generador de Sprites CSS – Spritemapper

Los sprites CSS son una gran idea para minimizar el numero de peticiones hechas al servidor web cuando se cargan imágenes, esa es la parte buena, la mala es que generar dicho sprite puede ser una tarea muy pesada y frustante si se trata de muchas imágenes.

 

Spritemapper es una herramienta para facilitar dicho proceso uniendo multiples imágenes en una sola y creando el CSS necesario para mostrar cada parte.

2011-06-10 | Publicado en Blog, Diseño web | Etiquetado | Deja un comentario

Diseño web y posicionamiento en buscadores

Es muy importante a la hora de realizar y ejecutar el Diseño web de nuestra página, tener presente que no sólo queremos que nuestra página web “exista” en Internet, también deseamos que esta sea visible y tenga el mayor número de visitantes posible.

2009-04-11 | Publicado en Blog, Diseño web | Etiquetado , , , | Comentarios desactivados

Tiendas virtuales y Diseño web

Existe hoy en día, una gran cantidad de proveedores que se dedican al diseño Web, y en ese paquete de servicios incluyen la creación de tiendas virtuales.

Esto está muy bien, siempre y cuando quede muy claro que el diseño web forma parte de lo artístico, y las tiendas virtuales pertenecen más al área de la programación y el desarrollo.

2009-03-21 | Publicado en Blog, Diseño web | Etiquetado , , | Comentarios desactivados