weranda
@weranda

Как через SVG-спрайт подключать картинки через background?

Хотелось бы максимально простой способ. Просто закидывать данные фигуры в SVG в отдельный файл в таком виде:
<svg display="none" xmlns="http://www.w3.org/2000/svg">

	<defs>

		<symbol xmlns="http://www.w3.org/2000/svg" id="x1" viewbox="0 0 16 16">
			<circle fill="none" stroke="#b4b4b4" stroke-miterlimit="10" cx="8" cy="8" r="3.5"/>
		</symbol>

		<symbol xmlns="http://www.w3.org/2000/svg" id="x2" viewbox="0 0 16 16">
			<circle cx="8" cy="8" r="3.5"/>
		</symbol>

	</defs>
	
</svg>

Потом вставлять их фоновым изображениям блокам.
В HTML пишу:
<div class="icon-1"></div>
И в CSS задавать правила:
background: url(sprite.svg#x2)
Нужно чтобы можно было менять их размеры в стилях. В сети кто что пишет, один - одно, другой - другое, третий - третье...дайте пожалуйста ссылки на проверенные примеры или опишите свой/правильный подход. Хочется максимального удобства без лишней возни, подключения нескольких файлов под каждый SVG, без расстановки по полотну...
  • Вопрос задан
  • 199 просмотров
Решения вопроса 1
ArsenyMatytsyn
@ArsenyMatytsyn Куратор тега CSS
Руководитель frontend направления, предприниматель
Спрайты реализуются вот так. Плюс минус, можно не использовать symbol-ы, или даже defs, а просто вызывать по id.

Можно, но не рекомендую ради кроссбраузерности, вызывать из внешнего файла, стоит встраивать в документ это добро для управляемости.

Еще больше структурированной информации ты найдешь тут.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
ae_ph
@ae_ph
I'm a owl )
Что-бы можно было управлять SVG из стилей, тебе нужно его прописывать либо инлайново - в HTML кидать код svg файла либо в HTML подключать SVG файл через object.
По другому ими через css не получится управлять.

А вставить SVG в SVG можно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы