Rollover-Bild, kein Javascript, kein Link, pure CSS, code-Validierung und-Browser-kompatibel
Rollover-Bild, kein JavaScript, kein Link, reiner CSS-code validieren und Browser kompatibel sind.
Hallo an alle, ich arbeite 24 Stunden die Meerenge zu kommen mit dieser Recht einfache Lösung. Ich möchte wissen, ob alles in Ordnung ist und ob es Möglichkeiten gibt, sich zu verbessern. Es ist sehr elegant, hier gehen wir:
Habe ich nur ein Bild "Logo" aber es wird sich zeigen, als 2 verschiedene logo jeweils mit einem rollover-Effekt.
Ich benutze ein sprite (nur 1 Bild, das meine 4 logos) und ich einfach ändern Sie die position.
Hier füge ich mein Bild in ein div mit
<div id="logo-rollover-1" class="logo-rollover">
<img title="whatever" alt="whatever" src="path-to-your-image">
</div>
Dann füge ich in einem anderen div das gleiche Bild aber mit einer anderen id
<div id="logo-rollover-2" class="logo-rollover">
<img title="whatever" alt="whatever" src="path-to-your-image">
</div>
Nun mein CSS:
.logo-rollover {
background: #ffd42a url('path-to-your-image');
width: 230px;
float: left;
height: 130px;
overflow: hidden;
position: relative;
}
.logo-rollover img { width: 460px; height: 260px; }
.logo-rollover :hover { opacity: 0; filter:alpha(opacity=0); }
#logo-rollover-1 { background-position: 0px -130px; }
#logo-rollover-2 { background-position: -230px -130px; }
#logo-rollover-2 img { right: 230px; position: relative; display: block; }
Erklärungen: wenn jemand schweben ein Bild, das Sie transparent und zeigen Sie das hintergrund-Hexe ist das gleiche Bild aber mit einer anderen position. Deckkraft: 0 für Firefox, Google und filter:alpha(opacity=0) für Entdecker. position: relative auf die .logo-rollover-Klasse ist für die Vereinbarkeit der verdeckte überlauf mit IE6 & IE7. display:block; wird Hinzugefügt, um die id-img für den Opera-browser.
- Kein Hack:, Wenn es keine Verbindung, es gibt keine Notwendigkeit href="#" oder "javascript:void(0)"
Vorteile: statt um 4 (oder mehr) Bilder, es ist nur 1 Bild (die Größe der 1-image-sprite ist kleiner als die Gesamtgröße von 4). der rollover ist sofort da das Bild bereits heruntergeladen wurde. Kein hack, kein falscher link, code validieren. Fügen Sie einen Titel zu dem Bild. Der einzige browser nicht überschlagen ist der IE6 die Seite ist aber nicht gebrochen, das logo korrekt angezeigt. Es gibt einen hack für die Aktivierung der hover bei IE6 habe ich aber nicht stört, da der IE6 ist tot.
Tipp: verwenden Sie den gleichen Pfad für das Bild überall.
Ich meine die "Pfad-zu-deinem-Bild" muss für alle das gleiche rufen. Da der browser-Cache.
Ist dies die beste elegante Art und Weise? Können diesen code verbessern? Ich hoffe, es wird jemand helfen, denn es war eine echte Schmerzen zu entwickeln, danke an die anderen user hier fand ich ein paar tricks hier und da und kam mit dieser.
Kommentar dankbar.
- Ich denke, Sie sollten wahrscheinlich nach diesem codereview.stackexchange.com -- Das heißt, ich fühle mich wie Sie die beste Ansatz. Werden Sie sicher, dass Sie alt-text-Logo.
- Ja, ich hatte komplette code, der aber nicht erlaubt war, in diesem post... ich bearbeitet es und ja, es hat alt-text. danke
- ...für die Zukunft, haben wir eine Website für diese.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Warum nicht komplett entfernen, innere
<img>
und erstellen logo mithilfe von CSS-hintergrund?Erklärung:
<a>
ist das einzige element, das unterstützt :hover-pseudo-Selektor auf IE6. Wenn Sie wollen native Lösung für den hover-logo, müssen Sie dieses tag benutzen. Einige Menschen manchmal wrap andere Elemente ab:<a><div></div></a>
zu geben, die div hover-Eigenschaft, die durch Zugriff von CSS mita:hover div { }
overflow:hidden; and text-indent:-1000px;
ausblenden von text aus dem inneren der div. Es ist eine gute Praxis zu verlassen, text innen für die Zugänglichkeit von Gründen.background
legt die Hintergrundfarbe des div, erstmal gerade steht auf 0, 0background-position
findet der eigentliche trick und verschiebt das Bild - es bewegt sich innerhalb der 'viewport' div andere Teil des Bildes sichtbar.nette Beschreibung! Ich sehe eine kleine Verbesserung: legen Sie die hintergrund-und no-repeat definition .logo-rollover-Klasse haben weniger css-code ein (Sie schreiben es nur einmal statt zweimal)