Допустим, у меня есть файл SVG:
<svg width="1024" height="768" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<text x='20' y='60' style="font-size: 60px">b</text>
<text x='100' y='60' style="font-size: 60px">a</text>
</svg>
Я хочу как-то выровнять верх a
и b
. На самом деле, я хочу, чтобы мое расположение было в соответствии с roofline
вместо baseline
!
svg
vertical-alignment
w3c
SeMeKh
источник
источник
Ответы:
alignment-baseline
Свойство это то , что вы ищете может принимать следующие значенияОписание от w3c
W3C Source
К сожалению, хотя это «правильный» способ достижения того, что вы ожидаете, Firefox не реализовал много атрибутов представления для текстового модуля SVG (документация MDN «SVG в Firefox» )
источник
alignment-baseline: central
делает не работа для SVGs в FireFox, и что , как представляется, в соответствии с проектом.dominant-baseline: central
работает в каждом браузере, который я пробовал до сих пор, как указано в этом ответе: stackoverflow.com/a/15997503/1450294Согласно SVG спецификации,
alignment-baseline
относится только к<tspan>
,<textPath>
,<tref>
и<altGlyph>
. Насколько я понимаю, это используется для компенсации тех, кто находится<text>
над ними. Я думаю, что вы ищетеdominant-baseline
.Возможные значения
dominant-baseline
:Проверьте рекомендацию W3C для свойства dominant-baseline для получения дополнительной информации о каждом возможном значении.
источник
element.hasAttribute('dominant-baseline')
, и если она возвращает false, примените,dy=-0.4em
как описано в этом ответе stackoverflow.com/a/29089222/2296470attr ("доминантно-базовый", "центральный")
источник
Если вы тестируете это в IE, dominant-baseline и alignment-baseline не поддерживаются.
Самый эффективный способ центрировать текст в IE - использовать что-то вроде этого с «dy»:
Отрицательное значение сместит его вверх, а положительное значение dy сместит его вниз. Я обнаружил, что использование -.4em мне кажется немного более центрированным по вертикали, чем -.5em, но вы будете судить об этом.
источник
Посмотрев Рекомендацию SVG, я понял, что базовые свойства предназначены для позиционирования текста относительно другого текста, особенно при смешивании разных шрифтов и / или языков. Если вы хотите разместить текст так, чтобы он был на вершине,
y
тогда вам нужно использоватьdy = "y + the height of your text"
.источник
"<list-of-lengths>"
Например, не знал о параметре (связанный) (позволяет манипулировать персонажем)