Я пытаюсь центрировать элемент SVG в родительском элементе. Тем не менее, я нахожу расхождения между Chrome и Safari. Следующий код центрирует текст красиво внутри квадрата на Chrome, но не на сафари:Центрирование элемента SVG Chrome vs Safari
<svg width="200px" height="200px">
<g transform="translate(70,70)">
<path d="M -40,-40 l 80,0 l 0,80 l -80,0 l 0,-80 z" style="fill: gray"></path>
<g>
<text text-anchor="middle" dominant-baseline="middle" style="fill: white" transform="scale(2)">
<tspan>test</tspan>
</text>
</g>
</g>
</svg>
Результат:
Я создал jsFiddle с этим теста:
https://jsfiddle.net/yq11jot0/
Как вертикально центрировать текст внутри квадрата?
Я предполагаю, что Safari не поддерживает 'доминирующую-baseline'. Кстати, даже мой Firefox имеет проблемы, когда 'dominant-baseline' используется как атрибут - отлично работает, хотя и используется внутри стиля. – Sirko
Это пробелы до и после tspan, которые портят вещи для Firefox. Я не уверен, что на самом деле должно произойти, т. Е. Является ли это ошибкой спецификации или ошибкой Chrome, Firefox или Safari. –
Firefox выталкивает текст в нижней части экрана. – Ruskin