Добавление изображений в CSS

Обычно, для того чтобы показать изображение пользователю используется тег <img…> в котором прописывается путь к изображению <img src="/path/to/img.jpg">, но для создания оформления страницы удобнее использовать CSS стили для HTML элементов.

Добавляем изображение в CSS с помощью свойства background-image

Для того, чтобы добавить изображение как фон html элемента, добавим стиль:

div.with-background {
    background-image: url(/path/to/img.jpg); /* Путь к фоновому изображению */
}

Подробнее можно прочитать в лучшем CSS справочнике рунета http://htmlbook.ru/css/background-image, а цель статьи — добавить изображение в CSS без закачки его на сервер.

Кодируем изображение в base64 и добавляем его в CSS с помощью свойства background-image

В некоторых случаях, когда изображения не большие, удобнее не закачивать их на сервер, а прямо добавить изображение в CSS, „перекодировав“ его в base64:

div.with-background {
    background-image: url(data:image/png;base64,iVBORw0KGgoAAA  …);
}

Перекодировать в base64 для добавления в CSS

Можно воспользоваться множеством онлайн сервисов, например http://www.base64-image.de/

Или написать свой скрипт кодирующий в base64

Перекодировать файл изображения в строку base64 можно с помощью, например, php функции base64_encode():

<form target="_self" method="post" enctype="multipart/form-data">
<input type="file" name="file1"><input type="submit" name="submit" value="submit">
</form>
<?php
if (isset($_POST['submit'])) {
	if (is_uploaded_file($_FILES["file1"]['tmp_name'])) {
		$folder = $_SERVER['DOCUMENT_ROOT']."/";
		move_uploaded_file($_FILES["file1"]['tmp_name'], $folder."test.png");
		$file = "test.png";
		if($fp = fopen($file,"rb", 0)) {
			$picture = fread($fp,filesize($file));
			fclose($fp);
			$base64 = base64_encode($picture);
			echo $base64;
		}
	}
}
?>

Ну и добавить получившуюся строку в CSS:

background-image: url('data:image/png;base64,iVBORw0KGgoA… … …lFTkSuQmCC');

источник