Встроенные изображения в CSS с background-image: url () - PullRequest
3 голосов
/ 03 июля 2010

Я пытаюсь загрузить gif-файл в свой файл .css, например:

li.box_entry {
  background-image: url(data:image/gif;base64,R0lGODlhDAANANUAAPv7+/r6+vn5+ff39/b29vX19fPz8/Dw8O/v7+7u7u3t7ezs7Onp6ejo6Ofn5+bm5uTk5OPj4+Hh4eDg4N/f397e3tzc3Nvb29ra2tnZ2dbW1tXV1dPT09LS0tHR0c3NzcjIyMfHx8bGxsXFxby8vLe3t7W1tbOzs62traurq6mpqaioqKenp6ampqWlpaOjo6KioqGhoaCgoJ+fn5qampmZmf///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAUUADYALAAAAAAMAA0AAAZxQJtwyGYrVaLEQswGYWAOAygxWELxaFwCVUWi/bRyZaJM5nUezjInkcjHi8U2rVNhmJY++QZDg0NBgTExEPhxJ+NCogDY6PjiMqGisLCJeYDTIaNikmCgOhAwgnKUICKCsdBgYdMSgCRBgogSgZQ0EAOw==);
  background-repeat: no-repeat;
}

GIF-изображение в кодировке base64 с использованием http://www.motobit.com/util/base64-decoder-encoder.asp

Работает нормально, если связать изображение обычным способом:

li.box_entry {
  background-image: url(images/dot.gif);   background-repeat: no-repeat;
}

Тем не менее, это всего лишь небольшой файл, и я хочу уменьшить HTTP-запросы, поэтому я пытаюсь загрузить его прямо в файл CSS, что должно быть быстрее, хотя размер файла увеличивается из-за кодировки base64.

Встроенные изображения отлично работают в HTML, как в следующем примере:

<a href="index.php?mod=home&amp;language=es"><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABmJLR0QA/wD/AP+gvaeTAAAACXBI
WXMAAAsTAAALEwEAmpwYAAAAMklEQVR42mP8//8/AzUBEwOVweA3kPE/A8P/keVlFup6eEQmmxFo
IAsD48grHEZcAQsAaegJIuin2YEAAAAASUVORK5CYII=" alt="es" title="Español" width="20" height="20" border="0" /></a>

Согласно этой странице это также должно работать в файлах CSS: http://www.websiteoptimization.com/speed/tweak/inline-images/

Тем не менее, я протестировал с Google Chrome и Firefox, и это не так.

Я что-то упустил?

Вот страница, над которой я работаю: http://lansuite.orgapage.de Флаги в левом нижнем углу уже работают как встроенный HTML Однако серые / желтые точки по всей странице появляются несколько раз. Вот почему не стоит писать их как встроенный HTML. Я бы предпочел определять графику только один раз в файле CSS и загружать соответствующий класс каждый раз, когда мне нужно изображение.

Ответы [ 2 ]

1 голос
/ 03 июля 2010

Только что выяснил, проблема была в кодировщике base64: - /

Я сейчас использовал этот, он генерировал другой код для изображения GIF, и это работало: http://www.opinionatedgeek.com/dotnet/tools/base64encode/

Танкиза ответы!

1 голос
/ 03 июля 2010

Обязательно прочитайте это до конца.Он охватывает множество аспектов темы (например, поддержка IE).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...