Reemplazo de texto por imágenes mediante CSS
Muchas veces por cuestiones de diseño, optamos por colocar los titulos de las paginas webs con imagenes, por ejemplo si uno quiere añadir texto con sombra, con HTML simplemente no se puede lograr. Lo que se hace en este caso es Reeamplazar el texto por imagenes mediante CSS, es decir por ejemplo uno tiene el siguiente titulo:
Reemplazo de texto por imagenes mediante CSS
y se creo una imagen como esta:

En este pequeño artículo veremos como colocar ese titulo sin perder relevancia en el posicionamiento.
Como sabemos los títulos o subtítulos de las paginas webs se maquetan con <h1><h2>…<h6>, utilizando un orden jerárquico, de estas etiquetas.
Es decir que por ejemplo utilizaremos una <h3> para nuestro titulo, el HTML del titulo seria simplemente
<h3>Reemplazo de texto por imágenes mediante CSS</h3>
Ahora lo que tenemos que lograr es poder reemplazar el texto por una imagen pero sin perder la relevancia que tiene el titulo, entonces se procede con codigo css de la siguiente manera:
h3{ background:url(imagen-que-reemplaza-texto.png) no-repeat; display:block; width:447px; /*Ancho de la imagen*/ height:47px; /* alto de la imagen*/ margin:0 0 0 0; overflow:hidden; /* esto hace que todo lo que queda afuera del tamaño indicado en width y height se oculte y no se vea */ text-indent:-999%; /* Esto hace que el texto se mueva -999% del tamaño del h3 a la izquierda, de modo que no se ve */ }
Te recomiendo que pruebes el código si no lo entendes y empieces a jugar con las propiedades a ver como se logran variaciones.
También se puede ver que si uno coloca una imagen de fondo y le quita el text-indent:-999%; queda la imagen de fondo con el texto encima de la imagen esto se utiliza mucho para el diseño web.
Con respecto a los beneficios de utilizar esta técnica en vez de insertar la imagen de forma común con la etiqueta <img/> destaco principalmente que las etiquetas de los encabezados se deben utilizar para los títulos porque esto marca una semántica en la web, pero por ejemplo si uno coloca todos los títulos con imágenes, aunque coloquen la correspondiente etiqueta alt dentro de la imagen, los motores de quizás no lo interpreten como un titulo, sino como una simple imagen.
También hay que tener en cuenta que las imágenes son mucho mas pesadas que el texto, por lo que hay que tener cuidado con utilizar esta técnica cuando se las utiliza muchas veces en una misma pagina y además de eso tener las imágenes optimizadas al máximo para que la pagina cargue de forma rápida.





28 abril 2009 at 20:26 | Erik
Hola de nuevo yo, no me queda claro pero hacer que el texto se oculte atras de una imagen no es algo que seria una tecnica prohibida?
Es decir es lo que estas diciendo en el articulo que esta arriba de este… Bueno espero que mi pregunta no sea muy tonta…
11 mayo 2009 at 23:17 | dacho
Hola Erik, ninguna pregunta es tonta. El Reemplazo de imagenes no es una tecnica de Black Hat, Siempre y cuando uno escriba lo que dice la imagen. Es decir si la imagen dice, Portfolio de la empresa, entences es correcto escribir esa frase dentro de ese elemento.
… Es una de las cosas que mas utilizamos los diseñadores… Asi que no tengas miedo a la hora de utlizarlo que es totalmente legal… Gracias por tu pregunta y te espero en el blog cuando quieras…
20 mayo 2009 at 22:45 | Ramón
Hola, si hacemos lo que dices con el titulo de un blog, entonces ¿la imagen queda como enlace?. Como se solucionaría si es que no queda como enlace para que si quede como enlace.
Saludos y gracias!!!.
20 mayo 2009 at 22:56 | dacho
Estumado Ramón, exactamente… Si lo haces como yo digo queda como enlace (tenes que poner la imagen como background en el enlace)… La mejor forma de ver como queda para la vista de los buscadores es mirarlo con un explorador web a base de texto como el que utiliza el boot de google, el que utliza el boot se llama lynx y esta disponible en los sistemas linux por defecto y creo que hay una version para windows, ademas podes descargarte el addon para firefox que se llama Web Developer y una vez instalado vas a CSS –> Disable Styles –> All Styles, y veras tu pagina web sin css, lo que te permite corroborar casi de la misma forma.
20 mayo 2009 at 22:57 | dacho
Espero te sirva, ademas podes hacer todas las consultas que creas necesarias
13 diciembre 2009 at 12:58 | Francisco
Hola,
he aplicado la hoja de estilos que muestras como ejemplo pero no me funciona, he quitado y he puesto distintas variables y la imagen no me aparece.
Te escribo el codigo q he escrito haber si ves algún fallo:
#topnav ul li #menu55{
text-indent:-999%;
display:block;
width:180px;
height:40px;
overflow:hidden;
background-image: url(..\images\unarchive_f2.png) no-repeat;
background-repeat:no-repeat;
}
Por cierto estoy usando una plantilla en joomla 1.5
Gracias
13 diciembre 2009 at 14:30 | dacho
Hola @Francisco, el problema seguramente es que colaste
“#topnav ul li #menu55″ entonces estas haciendo referencia a algun elemento con el id #menu55 adentro de los li pero eso esta mal porque lo que queres es que ese li tome las propiedades.
proba cambiando eso (#topnav ul li #menu55) por esto:
#topnav ul li#menu55 (lo que hice es pegar el li al # (sharp)
Tambien otro problema que podes tener es que no estes llamando bien a la imagen, fijate que la ruta ../images/unarchive_f2.png esta refereciada desde el archivo del css.
Pero si no te sirvio la correccion que te hice avisame y lo vemos…
21 diciembre 2009 at 22:06 | marco
background-image: url(..\images\unarchive_f2.png) no-repeat;
el problemas es que hace muy lento la pagina al momento en que esta se carga
22 diciembre 2009 at 1:48 | dacho
Hola Marco, para nada, eso depende de la imagen que le colgas de fondo si colocas una imagen que pesa 5mb si va a demorar pero por lo normal una imagend e background no pesa mas de 10kb, ademas no hace falta que sea no-repeat.
Coincido en que sera mas pesada la carga pero si lo que buscas es colocar texto por ejemplo sombreado, o alguna tipografia no comun no tenes muchas opciones, este es el mejor de los recursos para colocar titulos, ya que el tiempo de carga es el mismo que si lo colocas como una imagen comun y te permite seguir con la semantica web y beneficiarte en el SEO.
3 febrero 2010 at 13:33 | Codu
Damian, probe copiar y pegar el programa.. Crear un h3 y no me reconoce la imagen. Si tenemos una imagen denominada codu.gif en la misma carpeta que el html como seria el codigo?
8 febrero 2010 at 0:01 | dacho
@codu, el codigo css para que la imagen aparezca seria url(codu.gif) no-repeat;
Ademas obviamente todos los otros parametros que aparecen en el codigo mas arriba en el post para que el texto se oculte.