Parece que hay algunas técnicas diferentes, así que esperaba obtener una respuesta "definitiva" sobre esto ...
En un sitio web, es una práctica común crear un logotipo que enlace a la página de inicio. Quiero hacer lo mismo, mientras optimizo mejor para motores de búsqueda, lectores de pantalla, IE 6+ y navegadores que han desactivado CSS y / o imágenes.
Ejemplo uno: no utiliza una etiqueta h1. No es tan bueno para SEO, ¿verdad?
<div id="logo">
<a href="">
<img src="logo.png" alt="Stack Overflow" />
</a>
</div>
Ejemplo dos: Encontré esto en alguna parte. El CSS parece un poco hacky.
<h1 id="logo">
<a href="">Stack Overflow</a>
</h1>
/* css */
#logo {
padding: 70px 0 0 0;
overflow: hidden;
background-image: url("logo.png");
background-repeat: no-repeat;
height: 0px !important;
height /**/:70px;
}
Ejemplo tres: mismo HTML, enfoque diferente usando sangría de texto. Este es el enfoque "Phark" para el reemplazo de imágenes.
<h1 id="logo">
<a href="">Stack Overflow</a>
</h1>
/* css */
#logo {
background: transparent url("logo.png") no-repeat scroll 0% 0%;
width: 250px;
height: 70px;
text-indent: -3333px;
border: 0;
margin: 0;
}
#logo a {
display: block;
width: 280px; /* larger than actual image? */
height: 120px;
text-decoration: none;
border: 0;
}
Ejemplo cuatro: El método Leahy-Langridge-Jefferies . Aparece cuando las imágenes y / o CSS están apagados.
<h1 id="logo" class="logo">
<a href="">Stack Overflow</a>
</h1>
/* css */
h1.logo {
margin-top: 15px; /* for this particular site, set this as you like */
position: relative; /* allows child element to be placed positioned wrt this one */
overflow:hidden; /* don’t let content leak beyond the header - not needed as height of anchor will cover whole header */
padding: 0; /* needed to counter the reset/default styles */
}
h1.logo a {
position: absolute; /* defaults to top:0, left:0 and so these can be left out */
height: 0; /* hiding text, prevent it peaking out */
width: 100%; /* 686px; fill the parent element */
background-position: left top;
background-repeat: no-repeat;
}
h1#logo {
height: 60px; /* height of replacement image */
}
h1#logo a {
padding-top: 60px; /* height of the replacement image */
background-image: url("logo.png"); /* the replacement image */
}
¿Qué método es el mejor para este tipo de cosas? Proporcione html y css en su respuesta.
title
atributo debe estar en el<a>
?Respuestas:
Te estás perdiendo la opción:
¡El título en href e img a h1 es muy, muy importante!
fuente
Lo hago principalmente como el anterior, pero por razones de accesibilidad, necesito admitir la posibilidad de que las imágenes se deshabiliten en el navegador. Por lo tanto, en lugar de sangrar el texto del enlace de la página, lo cubro colocando absolutamente
el ancho y la altura completos del<span>
<a>
y usandoz-index
para colocarlo sobre el texto del enlace en el orden de apilamiento.El precio está vacío
<span>
, pero estoy dispuesto a tenerlo allí para algo tan importante como un<h1>
.fuente
Si las razones de accesibilidad son importantes, use la primera variante (cuando el cliente quiera ver una imagen sin estilos)
No es necesario cumplir con los requisitos imaginarios de SEO, porque el código HTML anterior tiene la estructura correcta y solo usted debe decidir si esto es adecuado para sus visitantes.
También puede usar la variante con menos código HTML
Tenga en cuenta que he eliminado todos los demás estilos y hacks de CSS porque no se correspondían con la tarea. Pueden ser útiles solo en casos particulares.
fuente
display:none
no es accesible.Entrando un poco tarde aquí, pero no pudo resistir.
Tu pregunta es medio defectuosa. Dejame explicar:
La primera mitad de su pregunta, sobre el reemplazo de imágenes, es una pregunta válida, y mi opinión es que para un logotipo, una imagen simple; un atributo alt; y CSS para su posicionamiento son suficientes.
La segunda mitad de su pregunta, sobre el "valor de SEO" del H1 para un logotipo, es el enfoque incorrecto para decidir qué elementos usar para diferentes tipos de contenido.
Un logotipo no es un encabezado principal, o incluso un encabezado en absoluto, y usar el elemento H1 para marcar el logotipo en cada página de su sitio hará (un poco) más daño que beneficio para su clasificación. Semánticamente, los encabezados (H1 - H6) son apropiados para, bueno, eso: encabezados y subtítulos para contenido.
En HTML5, se permite más de un encabezado por página, pero un logotipo no merece uno de ellos. Su logotipo, que podría ser un widget verde difuso y algo de texto está en una imagen al costado del encabezado por una razón: es una especie de "sello", no un elemento jerárquico para estructurar su contenido. El primero (si usa más depende de su jerarquía de encabezado) H1 de cada página de su sitio debe encabezar su tema. El encabezado principal principal de su página de índice podría ser 'La mejor fuente de widgets verdes difusos en Nueva York'. El encabezado principal en otra página podría ser 'Detalles de envío para nuestros widgets difusos'. En otra página, puede ser 'Acerca de Bert's Fuzzy Widgets Inc.'. Tienes la idea.
Nota al margen: por increíble que parezca, no busque en la fuente de las propiedades web propiedad de Google ejemplos de marcas correctas. Esta es una publicación completa en sí misma.
Para obtener el mayor "valor SEO" del HTML y sus elementos, eche un vistazo a las especificaciones HTML5 y tome decisiones de marcado basadas en la semántica (HTML) y el valor para los usuarios antes que los motores de búsqueda, y tendrá un mayor éxito con su SEO
fuente
Creo que te interesaría el debate H1 . Es un debate sobre si usar el elemento h1 para el título de la página o para el logotipo.
Personalmente, iría con su primera sugerencia, algo así:
Por supuesto, esto depende de si su diseño usa títulos de página, pero esta es mi postura sobre este tema.
fuente
Esta fue la buena opción para SEO porque SEO le da a la etiqueta H1 alta prioridad, dentro de la etiqueta h1 debe estar el nombre de su sitio. Si usa este método si busca el nombre del sitio en SEO, también mostrará el logotipo de su sitio.
desea ocultar el nombre del sitio O el texto, utilice sangría de texto en valor negativo. ex
fuente
Te perdiste el título en el
<a>
elemento.Sugiero poner el título en el
<a>
elemento porque el cliente querría saber cuál es el significado de esa imagen. Debido a que lo ha configuradotext-indent
para la prueba de ese<h1>
modo, ese usuario front-end podría obtener información del logotipo principal mientras se desplazan sobre el logotipo.fuente
¿Cómo funciona el W3C?
Simplemente eche un vistazo a https://www.w3.org/ . La imagen tiene un
z-index:1
, el texto está aquí pero detrás debidoz-index:0
alposition: absolute;
El HTML original:
El CSS original:
fuente
Un punto que nadie ha mencionado es el hecho de que el atributo h1 debe ser específico para cada página y el uso del logotipo del sitio replicará efectivamente el H1 en cada página del sitio.
Me gusta usar el índice az oculto h1 para cada página, ya que el mejor SEO h1 a menudo no es el mejor para las ventas o el valor estético.
fuente
Se supone que un nuevo método (Keller) mejora la velocidad sobre el método -9999px:
recomendado aquí: http://www.zeldman.com/2012/03/01/replacing-the-9999px-hack-new-image-replacement/
fuente
No sé, pero este es el formato que he usado ...
Simple y no ha hecho ningún daño a mi sitio hasta donde puedo ver. Podrías css pero no veo que se cargue más rápido.
fuente
Por razones de SEO:
fuente
Después de leer las soluciones anteriores, utilicé una solución CSS Grid.
fuente
fuente
fuente