Я пытаюсь добавить эллипс в SVG
(исходный фрагмент)
<svg>
<rect x = "0" y = "0" width = "100" height = "100"></rect>
<circle cx = "200" cy = "0" r = "100"></circle>
<ellipse cx = "400" cy = "0" rx = "100" ry = "50" fill = "yellow"></ellipse>
</svg>Но добавление некоторых атрибутов работает:
(рабочий фрагмент)
<svg xmlns = "http://www.w3.org/2000/svg" version = "1.1" width = "100%" height = "100%">
<rect x = "0" y = "0" width = "100" height = "100"></rect>
<circle cx = "200" cy = "0" r = "100"></circle>
<ellipse cx = "400" cy = "0" rx = "100" ry = "50" fill = "yellow"></ellipse>
</svg>Вопросов:
xmlns и version?Смотрите здесь для jsfiddle.






Если вы не указываете размер холста, для элемента <svg> (как и для всех заменяемых элементов) по умолчанию используется значение 300 пикселей x 150 пикселей. Ваш эллипс находится в rx = "400", поэтому находится за пределами холста. Установка большего размера холста исправляет ситуацию, так что вы можете видеть эллипс.
версия бессмысленна, xmlns требуется только для автономных файлов SVG, если вы встраиваете что-то в html-страницу, как мы делаем здесь с фрагментами, вы можете опустить и то, и другое.
svg {
width: 100%;
height: 100%;
}<svg>
<rect x = "0" y = "0" width = "100" height = "100"></rect>
<circle cx = "200" cy = "0" r = "100"></circle>
<ellipse cx = "400" cy = "0" rx = "100" ry = "50" fill = "yellow"></ellipse>
</svg>Что мешает отображению эллипса, так это отсутствие атрибута width, как показано в этом фрагменте:
<svg width = "350">
<rect x = "0" y = "0" width = "100" height = "100"></rect>
<circle cx = "200" cy = "0" r = "100"></circle>
<ellipse cx = "400" cy = "0" rx = "100" ry = "50" fill = "yellow"></ellipse>
</svg>Размер области просмотра по умолчанию составляет 300x150, поэтому все остальное обрезается.
Отличный ответ во всех смыслах.