Возможные значения refX, refY в маркере SVG - PullRequest
0 голосов
/ 05 ноября 2018

В документации W3C мы можем прочитать, что атрибут refY svg <marker> может принимать значения top, center, bottom, но когда я пытаюсь это сделать, У меня следующая ошибка:

Error: <marker> attribute refY: Expected length, "center".

Вот фрагмент, при запуске которого вы можете увидеть ошибку в консоли браузера ( Я использую Chrome 70.0.3538.77 в Debian ). Я знаю, что могу поставить значение 6 (в данном случае), чтобы отцентрировать его, я просто хочу знать, неправильно ли я понимаю документацию или это ошибка.

svg{
background-color:lightblue;
}
<svg width="100" height="100">
  <defs>
    <marker id="arrow" markerWidth="12" markerHeight="12" refX="0" refY="center" markerUnits="strokeWidth">
      <path d="M0,0 L0,12 L12,6 z" fill="red" />
    </marker>
  </defs>
  <line x1="0" y1="50" x2="50" y2="50" stroke="red" stroke-width="2" marker-end="url(#arrow)" />
</svg>

1 Ответ

0 голосов
/ 05 ноября 2018

То, на что вы смотрите, может показаться заброшенным проектом спецификации маркера.

Предлагается следующая версия спецификации SVG: SVG 2 . Это реализуется производителями браузеров, хотя, как вы обнаружили, такая реализация новых функций не очень удобна. Вы можете видеть в этом тексте спецификации, который говорит

Мы добавим ключевые слова top / center / bottom, left / center / right к refX / refY для маркера / символа. Решено в Лондоне F2F. Значения, вдохновленные 'background-position'.

Текст SVG 1.1 не поддерживает верх, центр или низ. Если вы придерживаетесь того, что в SVG 1.1, у вас гораздо больше шансов на то, чтобы все заработало.

В какой-то момент SVG 2 будет содержать новые функции, потому что большинство браузеров его поддерживают, или новые функции будут исключены из спецификации. В настоящее время SVG 2 все еще находится в стадии разработки, как в качестве спецификации, так и в качестве цели для браузеров.

...