Powiedzmy, że mam plik 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>
Chcę jakoś wyrównać górę a
i b
. Właściwie chcę, aby moje pozycjonowanie było zgodne roofline
z baseline
!
svg
vertical-alignment
w3c
SeMeKh
źródło
źródło
Odpowiedzi:
alignment-baseline
Nieruchomość jest to, czego szukasz to może przyjmować następujące wartościOpis z w3c
Źródło W3C
Niestety, chociaż jest to „poprawny” sposób osiągnięcia tego, czego oczekujesz, wydaje się, że Firefox nie zaimplementował wielu atrybutów prezentacji dla modułu tekstowego SVG ( Dokumentacja MDN „SVG w Firefoksie” )
źródło
alignment-baseline: central
robi nie praca dla pomostów żylnych w Firefox, a to wydaje się być zgodne z projektem.dominant-baseline: central
działa w każdej przeglądarce, którą do tej pory wypróbowałem, jak wskazano w tej odpowiedzi: stackoverflow.com/a/15997503/1450294Według specyfikacji SVG,
alignment-baseline
tylko odnosi się do<tspan>
,<textPath>
,<tref>
i<altGlyph>
. Rozumiem, że jest używany do odsunięcia tych od<text>
obiektu nad nimi. Myślę, że to, czego szukaszdominant-baseline
.Możliwe wartości
dominant-baseline
to:Sprawdzić zalecenia W3C dla dominujące podstawowej właściwości , aby uzyskać więcej informacji na temat każdej możliwej wartości.
źródło
element.hasAttribute('dominant-baseline')
, a jeśli zwraca wartość false, zastosuj,dy=-0.4em
jak opisano w tej odpowiedzi stackoverflow.com/a/29089222/2296470attr ("dominująca linia bazowa", "centralna")
źródło
Jeśli testujesz to w IE, dominant-baseline i alignment-baseline nie są obsługiwane.
Najskuteczniejszym sposobem wyśrodkowania tekstu w IE jest użycie czegoś takiego z „dy”:
Ujemna wartość przesunie go w górę, a dodatnia wartość dy - w dół. Zauważyłem, że użycie -.4em wydaje mi się nieco bardziej wyśrodkowane w pionie niż -.5em, ale będziesz tego oceniać.
źródło
Po zapoznaniu się z zaleceniem SVG doszedłem do wniosku, że właściwości linii bazowej mają na celu pozycjonowanie tekstu względem innego tekstu, zwłaszcza podczas mieszania różnych czcionek i / lub języków. Jeśli chcesz opublikować tekst tak, aby był na górze
y
, musisz użyćdy = "y + the height of your text"
.źródło
"<list-of-lengths>"
opcji (pozwala na manipulację postacią)