WebKit soporta la nueva propiedad background-clip de CSS3, lo que es una buena noticia ya que puedes utilizarla para lograr este efecto impactante en el que las letras están conformadas por la imagen de fondo. Y lo mejor de todo, es que tan sólo bastan unas pocas lineas de código.

Fuente original del artículo: Dynamic Drive
Traducción realizada por elWebmaster.com

Lo que sigue a continuación es el código necesario para poner este efecto en acción:

  1. h1 {
  2. color: white;  /* Fallback: assume this color ON TOP of image */
  3. background: url(images/fire.jpg) no-repeat;
  4. -webkit-background-clip: text;
  5. -webkit-text-fill-color: transparent;
  6. }

Eso es todo. Elige una imagen de fondo, colócala en el elemento, luego inserta el efecto y configura el color de relleno del texto como transparente.

imagebehindtext

Haz clic aquí para ver una demostración >>

Compatibilidad

Lamentablemente, este efecto es sólo compatible con navegadores que utilicen Webkit. Por lo tanto, necesitamos un plan B para mostrar correctamente este texto a aquellos con un navegador no compatible.

La mejor herramienta para este tipo de resguardos es Modernizr, del que ya hemos hablado anteriormente. Simplemente añádelo a tu sitio, y se ocupará de agregar classnames al tag html de tu página indicando lo que el navegador que está siendo utilizado es capaz de hacer. Como Modernizr aún no posee por defecto la propiedad background-clip, se la añadiremos nosotros con el siguiente código:

  1. <script src=»modernizr-1.6.min.js»></script>
  2. <script>
  3. Modernizr.addTest(‘backgroundclip’,function(){
  4. var div = document.createElement(‘div’);
  5. if (‘backgroundClip’ in div.style) return true;
  6. ‘Webkit Moz O ms Khtml’.replace(/([A-Za-z]*)/g,function(val){
  7. if (val+’BackgroundClip’ in div.style) return true;
  8. });
  9. });
  10. </script>

Si Modernizr detecta que el navegador soporta esta propiedad, le asignará al tag html la class «backgroundclip«. De lo contrario, le asignará la class «no-backgroundclip«.

Y ahora sí, este es el nuevo código:

  1. .backgroundclip h1 {
  2. background: url(images/west.jpg) -100px -40px no-repeat;
  3. -webkit-background-clip: text;
  4. -webkit-text-fill-color: transparent;
  5. }
  6. h1 {
  7. color: orangered;
  8. }

¡Y listo! Ahora las letras tendran un buen color sólido de fondo en lugar de un efecto incompatible.

properfallback

Haz clic aquí para ver una demostración >>

Fuente original del artículo: Dynamic Drive
 

VIa: www.elwebmaster.com

Por admin

Deja una respuesta