Ich verwende ein transparentes 1x1-Bild mit einem Hintergrundbild, um Sprites verwenden zu können und dennoch alternativen Text für einige Symbole bereitzustellen.
Ich möchte einen Daten-URI für das Image verwenden, um die Anzahl der HTTP-Anforderungen zu verringern. Was wäre jedoch die kleinstmögliche Zeichenfolge, um ein transparentes Image zu erstellen ?
Mir ist klar, dass ich Daten-URIs für die tatsächlichen Bilder anstelle von Sprites verwenden könnte, aber es ist einfacher zu pflegen, wenn alles im CSS gespeichert ist, anstatt verstreut zu sein.
css
css-sprites
Jacob Rask
quelle
quelle
Antworten:
Nach dem Herumspielen mit verschiedenen transparenten GIFs sind einige instabil und verursachen CSS-Störungen. Wenn Sie beispielsweise ein haben
<img>
und das kleinstmögliche transparente GIF verwenden, funktioniert dies einwandfrei. Wenn Sie jedoch möchten, dass Ihr transparentes GIF ein hatbackground-image
, ist dies unmöglich. Aus irgendeinem Grund verhindern einige GIFs wie die folgenden CSS-Hintergründe (in einigen Browsern).Kürzer (aber instabil - 74 Bytes)
Ich würde empfehlen, die etwas längere und stabilere Version wie folgt zu verwenden:
⇊ Stabil ⇊ (aber etwas länger - 78 Bytes)
Lassen Sie
image/gif
als weiteren Tipp nicht aus, wie ein Kommentar andeutet. Dies wird in mehreren Browsern unterbrochen.quelle
Die endgültige Länge hängt davon ab, mit was es gezippt wird.
quelle
width: auto;
nimmt eine SVG die Breite ihres übergeordneten Elements an. Ein statisches Bild wie GIF oder PNG behält bei einer festgelegten Höhe und Breite automatisch sein Seitenverhältnis bei.Ich denke, es muss eine komprimierte transparente 1x1-GIF-Datei (82 Byte) sein:
Generiert mit dopiaza.org-Daten: URI-Generator .
quelle
Kleinstes PNG - 114 Bytes:
quelle
Dieser Typ bricht das Problem über die GIF-Spezifikation auf. Seine Lösung für das
transparent.gif
wäre 37 Bytes:Er wird noch kleiner, indem er zuerst die Transparenz und dann die Farbtabelle entfernt ...
GIF89a-Spezifikation
Header (6 Bytes)
Logischer Bildschirmdeskriptor (7 Bytes)
Globale Farbtabelle (6 Bytes)
Grafische Steuerungserweiterung (8 Bytes)
Bilddeskriptor (10 Bytes)
Bilddaten (5 Bytes)
GIF-Trailer (1 Byte)
Quelle: Das kleinste GIF aller Zeiten .
quelle
Sie können die folgenden SVG-Daten (60 Byte) ausprobieren:
Eine eigenständige SVG-Datei würde folgendermaßen aussehen (62 Byte):
Siehe auch:
quelle
content
Eigenschaft.Dies ist das kleinste, das ich gefunden habe (26 Bytes):
quelle
Ich verwende folgende Daten uri, um ein leeres Bild zu erhalten:
//:0
quelle
Für leeres Bild:
(es wird übersetzt in
src=(unknown)
)quelle