Sie wissen, dass Suchmaschinen wie Google, Yahoo und MSN hauptsächlich den Textinhalt Ihrer Seiten betrachten, um sie zu indizieren und ihre Relevanz für Suchanfragen zu bestimmen. Sie wissen auch, dass die Verwendung von Überschriften-Tags wie <h1> in Ihrem HTML wichtig ist, da Suchmaschinen organisierte, unterteilte Inhalte schätzen. Aber was, wenn Sie einfach keine großen, hässlichen Text-Abschnittsüberschriften auf Ihrer Website haben möchten? Würden Sie nicht lieber Ihre eigene benutzerdefinierte Grafik verwenden? Sicher würden Sie das, aber Sie möchten Ihre <h1> nicht für <img> opfern und die gesamte Suchmaschinenfreundlichkeit verlieren. Das müssen Sie nicht!
Einer der angesagtesten Tricks im Moment ist die Verwendung einer Klasse, um Header-Text durch ein Bild zu ersetzen. Verwenden Sie Ihre Header-Tags wie gewohnt, geben Sie ihnen nur einen eindeutigen Klassennamen: <h1 class="headerReplacement">Section Header</h1> Definieren Sie die Klasse in Ihrem CSS wie folgt:
.headerReplacement {
text-indent: -9999px;
width: 600px;
height: 100px;
background: url(/path/to/your/image.jpg) #cccccc no-repeat;
}
Dies sollte Ihr schönes neues benutzerdefiniertes Bild genau dort platzieren, wo die alte hässliche Textüberschrift war, ohne ein Gramm Lesbarkeit für Suchmaschinen zu verlieren. Diese Technik ermöglicht auch, dass Ihre Seite gut mit Nutzern umgeht, die Screenreader verwenden oder das Web mit ausgeschalteten Bildern und/oder CSS durchsuchen.
Gute Idee; wenn ein Benutzer jedoch die Seite durch Drücken von [STRG] und [+]/[-] vergrößert, skaliert sich der Hintergrund nicht, er behält seine Größe bei und wenn Sie "em" anstelle von "px" verwenden, zerstört es zumindest nicht Ihr Layout.
Ich habe mir das ausgedacht
<div id=”content_title”>
<h1><img src=”http://my.website.com/templates/title.png.php?text=[title]” alt=”[title]” style=”width:55em;height:2.7em” />[title]</h1>
</div>
CSS
#content_title h1 {
padding-top: 1em;
margin: 0px;
}
#content_title {
margin-bottom: 1em;
overflow: hidden;
height: 3.7em;
border-bottom: 0.1em dashed #369;
}
Das Bild wird zuerst platziert, und vorausgesetzt, dass das Bild die exakte Größe des „content_title“-Divs hat und da overflow:hidden ist, wird der tatsächliche Text hinter dem Bild niemals angezeigt, es sei denn, der Besucher kann Bilder in seinem Browser nicht anzeigen (z. B. eine Suchmaschine oder ein Textbrowser). Und wenn das Bild aus irgendeinem Grund nicht geladen werden kann (z. B. ein Fehler im Skript, das das Bild generiert, ein Verbindungsfehler usw.), wird der Alt-Text angezeigt, und da die Größe des Bildes angegeben ist, soll ein Browser den Bereich reservieren (was verhindert, dass der Text neben dem Bild angezeigt wird).
Getestet in Opera7, FF2, IE7
Hey Paul,
Das ist ziemlich cool. Ich glaube nicht, dass ich diese spezielle Methode schon einmal gesehen habe. Es gibt eine viel gründlichere Untersuchung von CSS-Bildersetzungen hier.
Oh und *peng* Ich habe es natürlich nicht in IE6 getestet.
Zusätzlich zur Höhe muss #content_title auch eine Breite zugewiesen bekommen. In meinem Fall sind es 55em (die Breite des Header-Bildes). Andernfalls kann Ihr Layout in IE6 explodieren.
Ich verstehe die Gründe für die Verwendung dieser Methode, aber es scheint dem Designer die Konvention zu verweigern, das Logo im Header zu platzieren, um den Benutzer zur Homepage zurückzubringen. Oder kann das Logo-Bild immer noch im Header zusammen mit dem H1 und .headerReplacement platziert werden?
Schauen Sie sich http://facelift.mawhorter.net/ an.
Ich bin mir nicht sicher, ob ich empfehlen würde, *den gesamten* Text auf Ihrer Website zu ersetzen, aber es ermöglicht Ihnen, Ihre Header usw. automatisch zu ersetzen... ziemlich schick.
text-indent: -9999px sollte text-indent: -9999px;