Estou usando uma imagem transparente de 1x1 com uma imagem de fundo, para poder usar sprites e ainda fornecer texto alternativo para alguns ícones.
Desejo usar um URI de dados para a imagem para reduzir o número de solicitações HTTP, mas qual seria a menor string possível para produzir uma imagem transparente ?
Sei que poderia usar dados URI: s para as imagens reais em vez de sprites, mas é mais fácil manter quando tudo é mantido no CSS em vez de espalhado.
css
css-sprites
Jacob Rask
fonte
fonte
Respostas:
Depois de brincar com diferentes GIFs transparentes, alguns são instáveis e causam falhas de CSS. Por exemplo, se você possui um
<img>
e usa o menor GIF transparente possível, ele funciona bem; no entanto, se você deseja que seu GIF transparente tenha umbackground-image
, isso é impossível. Por alguma razão, alguns GIFs, como os seguintes, impedem os fundos CSS (em alguns navegadores).Mais curto (mas instável - 74 bytes)
Eu recomendaria usar a versão um pouco mais longa e mais estável da seguinte maneira:
⇊ Estável ⇊ (mas um pouco mais longo - 78 bytes)
Como outra dica, não omita
image/gif
como sugere um comentário. Isso quebrará em vários navegadores.fonte
O comprimento final depende do que foi compactado.
fonte
width: auto;
, um SVG assume a largura de seu pai. Uma imagem estática, como GIF ou PNG, quando recebe uma altura e largura fixas automaticamente, manterá sua proporção.Eu acho que deve ser um arquivo GIF 1x1 transparente compactado (82 bytes):
Gerado com dados dopiaza.org: gerador de URI .
fonte
PNG menor - 114 bytes:
fonte
Esse cara detalha o problema por meio da especificação do GIF. Sua solução para o
transparent.gif
seria 37 bytes:Ele fica ainda menor removendo primeiro a transparência e depois a tabela de cores ...
Especificação GIF89a
Cabeçalho (6 bytes)
Descritor de tela lógica (7 bytes)
Tabela de cores global (6 bytes)
Extensão de controle gráfico (8 bytes)
Descritor de Imagem (10 bytes)
Dados da imagem (5 bytes)
Trailer GIF (1 byte)
Fonte: O menor GIF de todos os tempos .
fonte
Você pode tentar os seguintes dados SVG (60 bytes):
O arquivo svg autônomo teria a aparência (62 bytes):
Veja também:
fonte
content
propriedade favicon ou CSS .Este é o menor que encontrei (26 bytes):
fonte
Estou usando os seguintes dados uri para obter uma imagem vazia:
//:0
fonte
Para imagem vazia:
(será traduzido para
src=(unknown)
)fonte