Как работать с SVG?

Сгенерировал простую SVG-картинку, вставил в html https://jsfiddle.net/bpzqah0u/
Возникло несколько вопросов:
1) Квадрата 4, а блоков path 6 штук, как выделить структуру отвечающую за один квадрат (что бы раскрасить его внутри например, или реакцию на клик повесить?)
2) Иногда (пример ниже) используют data-path а иногда просто path как в этом случае. В чём между ними разница? Я встроил все координы из path в шесть div блоков но картинка сломалась в результате...
<path
       style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
       d="M 71.059523,93.648807 112.78774,92.538811"
       id="path3688"
       inkscape:connector-curvature="0" />


<div class="mapArea" data-path="M306,11 415,42 389,86 284,28z"></div>
  • Вопрос задан
  • 329 просмотров
Решения вопроса 1
LenovoId
@LenovoId Куратор тега SVG
svg, css,js
ну вообще каждый квадратик должен быть на отдельном слое
svg code
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:cc="http://creativecommons.org/ns#"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:svg="http://www.w3.org/2000/svg"
   xmlns="http://www.w3.org/2000/svg"
   id="svg8"
   version="1.1"
   viewBox="0 0 1000 297"
   height="297mm"
   width="400mm">
    <g
       transform="translate(0)"
       id="g4523">
      <rect
         style="fill:red;stroke:#000000;"
         id="rect3680"
         width="213.81561"
         height="243.7498"
         x="90.871643"
         y="30.799549" />

      <rect
         style="fill:green;stroke:#000000;"
         id="rect4488"
         width="224.50641"
         height="245.88795"
         x="304.68726"
         y="30.799549" />

      <rect
         style="fill:blue;stroke:#000000;"
         id="rect4488-0"
         width="224.50642"
         height="245.88797"
         x="529.19366"
         y="30.799549" />

      <rect
         style="fill:orange;stroke:#000000;"
         id="rect4488-5"
         width="224.50642"
         height="245.88797"
         x="753.70007"
         y="30.799549" />
    </g>
  </g>
</svg>

42de4af2fdb94c0a8ed1d9772557cef1.png

И так у нас получится каждый элемент по отдельности , каждому по отдельности можно в <defs></defs> задать своё изображение или что требуется

P:S то что у вас на fiddle это элементы которые вы ( очевидно ) рисовали кривыми Безье но в inkscape есть инструмент Прямоугольник/Квадрат и т д
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы