Digamos que tengo el archivo 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>
Quiero alinear de alguna manera la parte superior de ay b. En realidad, ¡quiero que mi posicionamiento esté de acuerdo con el en rooflinelugar de baseline!
svg
vertical-alignment
w3c
SeMeKh
fuente
fuente

Respuestas:
La
alignment-baselinepropiedad es lo que está buscando, puede tomar los siguientes valoresDescripción de w3c
Fuente W3C
Desafortunadamente, aunque esta es la forma "correcta" de lograr lo que busca, parece que Firefox no ha implementado muchos de los atributos de presentación para el Módulo de texto SVG ( Documentación MDN 'SVG en Firefox' )
fuente
alignment-baseline: centralhace no trabajo para el IVS en Firefox, y que parece ser por diseño.dominant-baseline: centralfunciona en todos los navegadores que he probado hasta ahora, como se indica en esta respuesta: stackoverflow.com/a/15997503/1450294Según la especificación SVG,
alignment-baselinesolo se aplica a<tspan>,<textPath>,<tref>y<altGlyph>. Tengo entendido que se utiliza para compensar a los del<text>objeto que se encuentra sobre ellos. Creo que lo que estás buscando esdominant-baseline.Posibles valores de
dominant-baselineson:Verifique la recomendación del W3C para la propiedad de línea de base dominante para obtener más información sobre cada valor posible.
fuente
element.hasAttribute('dominant-baseline'), y si devuelve falso, apliquedy=-0.4emcomo se describe en esta respuesta stackoverflow.com/a/29089222/2296470attr ("línea de base dominante", "central")
fuente
Si está probando esto en IE, la línea base dominante y la línea base de alineación no son compatibles.
La forma más efectiva de centrar texto en IE es usar algo como esto con "dy":
El valor negativo lo desplazará hacia arriba y un valor positivo de dy lo desplazará hacia abajo. He encontrado que usar -.4em me parece un poco más centrado verticalmente que -.5em, pero usted será el juez de eso.
fuente
Después de mirar la Recomendación SVG , he llegado a la comprensión de que las propiedades de la línea de base están destinadas a posicionar el texto en relación con otro texto, especialmente cuando se mezclan diferentes fuentes o idiomas. Si desea colocar el texto para que esté arriba,
yentonces necesita usarlody = "y + the height of your text".fuente
"<list-of-lengths>"opción (vinculada) por ejemplo (permite la manipulación por personaje)