Замена текста H1 логотипом: лучший способ для SEO и доступность? - PullRequest
229 голосов
/ 20 марта 2009

Кажется, что есть несколько различных техник, поэтому я надеялся получить "окончательный" ответ на этот вопрос ...

На веб-сайте принято создавать логотип, который ссылается на домашнюю страницу. Я хочу сделать то же самое, при этом оптимизируя работу поисковых систем, программ чтения с экрана, IE 6+ и браузеров, которые отключили CSS и / или изображения.

Пример первый: Не использует тег h1. Не так хорошо для SEO, верно?

<div id="logo">
    <a href="">
        <img src="logo.png" alt="Stack Overflow" />
    </a>
</div>

Пример второй: Нашел где-то это. CSS кажется немного хакерским.

<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;
}

Пример третий: Тот же HTML, другой подход с использованием text-indent. Это «Phark» подход к замене изображения.

<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;
}

Пример четвертый: Метод Лихи-Ленгриджа-Джеффериса . Отображается, когда изображения и / или CSS отключены.

<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 */
}

Какой метод лучше всего подходит для такого рода вещей? Пожалуйста, предоставьте HTML и CSS в своем ответе.

Ответы [ 15 ]

0 голосов
/ 29 ноября 2014

Новый (Келлер) метод должен улучшить скорость по сравнению с методом -9999px:

.hide-text {
text-indent: 100%;
white-space: nowrap;
overflow: hidden;
}

рекомендуется здесь: http://www.zeldman.com/2012/03/01/replacing-the-9999px-hack-new-image-replacement/

0 голосов
/ 07 марта 2013
<h1><a href="/" title="Some title">Name</a></h1>
h1 a{
  width: {logo width};
  height: {logo height};
  display:block;
  text-indent:-9999px;
  background:url({ logo url});
}
0 голосов
/ 26 февраля 2011

Не знаю, но этот формат использовали ...

<h1>
    <span id="site-logo" title="xxx" href="#" target="_self">
        <img src="http://www.xxx.com/images/xxx.png" alt="xxx" width="xxx" height="xxx" />
        <a style="display:none">
            <strong>xxx</strong>
        </a>
    </span>
</h1>

Просто, и это, насколько я вижу, не принесло моему сайту никакого вреда. Вы могли бы сделать это, но я не вижу, чтобы он загружался быстрее.

0 голосов
/ 02 февраля 2010
<div class="logo">
    <h1><a href="index.html"><span>Insert Website Name</span></a></h1>
    <p>Insert Slogan Here</p>
</div>
#header .logo h1 {
    background: red; /* replace with image of logo */
    display:block;
    height:40px; /* image height */
    width:220px; /* image width */
}

#header .logo h1 a {
    display:block;
    height:40px; /* image height */
    width:220px; /* image width */
}

#header .logo h1 a span {
    display:none;
}
0 голосов
/ 20 марта 2009

Я думаю, что первого примера более чем достаточно, так как альтернативный текст будет показан, если изображения отключены. Это также поможет поисковым системам узнать о вашем сайте.

Обновление: похоже, я был не прав. Проверьте это статья .

...