Для автономных SVG есть элемент view, который вы можете использовать, чтобы отображать только части вашей графики. Попробуйте это в отдельном файле.
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 100 100" width="100" height="100">
<view id="circleView" viewBox="0 0 100 100"/>
<view id="rectView" viewBox="100 0 100 100"/>
<a xlink:href="#rectView">
<circle cx="50" cy="50" r="45" fill="blue"/>
</a>
<a xlink:href="#rectView">
<rect x="105" y="5" width="90" height="90" fill="royalblue" stroke="#53c"></rect>
</a>
</svg>
Просто нажмите на круг, чтобы увидеть прямоугольник и на прямоугольнике, чтобы увидеть круг.
Это также работает, если вы ссылаетесь на свой svg через img
<img src="your.svg#circleView"/>
<img src="your.svg#rectView"/>
Я обнаружил, что это не работает для встроенного SVG. Здесь вы можете использовать аналогичный подход. Вы можете просто изменить viewBox вашего SVG. В отличие от вышесказанного, viewBoxe's можно даже анимировать!
<svg viewBox="0 0 460 360" width="200" height="200">
<polygon id="triangle" points="100,10,450,350,10,350" fill="#52c" />
<circle id="circle" cx="50" cy="50" r="45" fill="#c52" />
<rect id="rect" x="255" y="155" width="200" height="200" fill="#5c2" />
<animate attributeName="viewBox" to="250 150 210 210" dur="0.5s" begin="circle.click" fill="freeze" />
<animate attributeName="viewBox" to="0 0 100 100" dur="0.5s" begin="triangle.click" fill="freeze" />
<animate attributeName="viewBox" to="0 0 460 360" dur="0.5s" begin="rect.click" fill="freeze" />
</svg>
<br/>click on any of he shapes!
Конечно вы можете также точно использовать viewBox при помощи script..
Если вы хотите ссылаться на разные части вашего SVG, вы можете использовать use - элемент, как предложено в других ответах.
Прим. переводчика
Как взаимодействуют между собой viewport и viewBox - это фундаментальная основа для понимания процессов в SVG при отображении фрагментов бесконечного полотна SVG.
Для расширения знаний по этому вопросу посмотрите эту статью на нашем сайте.
Перевод ответа: Multiple perspectives into a single SVG @Holger Will
useиSVGВедьuseэто основная команда в SVG/ В этой статье идет речь, как показать отдельные фрагменты большего изображения SVG – Alexandr_TT Apr 03 '17 at 12:15