Es scheint, als gäbe es ein paar verschiedene Techniken, also hatte ich gehofft, eine "endgültige" Antwort darauf zu bekommen ...
Auf einer Website ist es üblich, ein Logo zu erstellen, das auf die Homepage verweist. Ich möchte das Gleiche tun und gleichzeitig am besten für Suchmaschinen, Bildschirmleseprogramme, IE 6+ und Browser optimieren, die CSS und / oder Bilder deaktiviert haben.
Beispiel 1: Verwendet kein h1-Tag. Nicht so gut für SEO, oder?
<div id="logo">
<a href="">
<img src="logo.png" alt="Stack Overflow" />
</a>
</div>
Beispiel 2: Ich habe das irgendwo gefunden. Das CSS scheint ein wenig 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;
}
Beispiel 3: Gleiches HTML, anderer Ansatz mit Text-Einzug. Dies ist der "Phark" -Ansatz zum Ersetzen von Bildern.
<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;
}
Beispiel 4: Die Leahy-Langridge-Jefferies-Methode . Wird angezeigt, wenn Bilder und / oder CSS deaktiviert sind.
<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 */
}
Welche Methode ist die beste für solche Dinge? Bitte geben Sie in Ihrer Antwort HTML und CSS an.
title
Attribut nicht in der sein <a>
?