В IE существует альтернативное решение для вставки изображений прямо в текстовый документ в виде mhtml
-включений. Давайте остановимся на его практической реализации для CSS-файлов (в данном случае это файл main.css
):
/* Content-Type: multipart/related; boundary="_" --_ Content-Location: 1 Content-Transfer-Encoding: base64 iVBOR.. */
Далее в CSS-файле нужно лишь вызвать эту картинку следующим образом:
ul li { background-image:url(mhtml:http://site.ru/main.css?20080531!1); }
Здесь в адресе картинки идет протокол mhtml
(который поддерживается исключительно в IE, но это не так важно), далее полный URL до CSS-файла (который содержит эту картинку), в данном случае этот URL еще и содержит GET-параметр для соответствующего кэширования. И небольшая тонкость применения данного формата: необходимо в URL использовать ту же строку, что и в HTML-файле, в котором подключается данный CSS, иначе IE запросит CSS-файл дважды: первый раз как таблицу стилей, второй раз — как хранилище картинки. Далее после восклицательного знака (!
) идет тот идентификатор, который мы назначили картинке в Content-Location
. И все.