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.
Entradas Relacionadas:
- Tips para identificar un buen SEO y para poder elegir correctamente una empresa que posicione su Web La tarea de identificar si un SEO, o persona/empresa que...
- Insertar imágenes y darles formato / Tutorial HTML Hola gente después de prometer llego con un poco de...
- Los mejores y mas bonitos Sliders de imagenes hechos en Jquery + CSS (javascript) Un buen recurso para diseñar una pagina web moderna es...
- Insertar Texto y darle formato – Tutor HTML / CSS Bueno en esta lección procederemos a insertar texto en una...
- Que es el el CSS y como dar formato al texto – Tutor xhtml / css ¿Qué es CSS? CSS, es una tecnología que nos permite...

Hace 1011 días | 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…
Hace 998 días | 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…
Hace 989 días | 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!!!.
Hace 989 días | 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.
Hace 989 días | dacho
Espero te sirva, ademas podes hacer todas las consultas que creas necesarias
Hace 783 días | 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
Hace 783 días | 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…
Hace 774 días | 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
Hace 774 días | 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.
Hace 731 días | 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?
Hace 726 días | 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.
Hace 496 días | Francis
Hola, he seguido tus indicaciones pero no consigo que me aparezca la imagen. Te paso el codigo donde quiero insertarla a ver si me puedes echar una mano porque ya he probado todo y nada me sirve
h3, h3 a, h3 a:link, h3 a:visited, h3 a:hover
{
font-family: Arial, Helvetica, Sans-Serif;
font-size: 18px;
font-style: normal;
font-weight: bold;
text-align: left;
color: #9C8D4F;
}
h3, h3 a, h3 a:link, h3 a:visited, h3 a:hover
{ background:url(‘../images/barratitulo.gif’);
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 */
}
Gracias por tu ayuda y un saludo
Hace 438 días | Jose
Hola, un buen tutorial a partir de ahora lo aplicaré y así mejoraré el seo de mi web, un saludo.