Да, вы можете использовать <defs>
там, где вам это нужно, хотя желательно сохранить его как прямой дочерний элемент корневого элемента.Спросите себя, действительно ли вам нужно наследовать стиль в контенте <defs>
.Обычно на содержимое внутри <defs>
ссылаются другие элементы, например, <use>
, поэтому в большинстве случаев не имеет значения, где находится <defs>
.
Преобразование <g>
элемент не повлияет на дочерний элемент <defs>
напрямую, поскольку преобразование не наследуется.Однако это может повлиять на возвращаемые значения из некоторых вызовов SVG DOM, но в целом, если вы запрашиваете подробности об элементах внутри <defs>
, вам все равно нужно быть осторожным, так как обычно требуется больше контекста для правильного вычисления результата, например, процентовЕдиницы и objectBoundingBox зависят соответственно от области просмотра и ссылочного элемента.
Вы можете столкнуться с проблемами, если включенный фрагмент SVG имеет правила стиля css, которые выбирают, например, корневой элемент или дочерние элементы элемента svg.