Ich habe gerade diese sehr einfache Svg unten;Viewbox und Symbol Positionierung in SVG
<div>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 194 186" class="circliful">
<g stroke="#ccc">
<line x1="133" y1="50" x2="140" y2="40" stroke-width="2"></line>
</g>
<g stroke="#ccc">
<line x1="140" y1="40" x2="200" y2="40" stroke-width="2"></line>
</g>
<circle cx="100" cy="100" r="57" class="border" fill="#eee" stroke="none" stroke-width="15" stroke-dasharray="360" transform="rotate(-90,100,100)"></circle>
<circle class="circle" cx="100" cy="100" r="57" fill="none" stroke="#3498DB" stroke-width="5" stroke-dasharray="180, 20000" transform="rotate(-90,100,100)"></circle>
<text text-anchor="middle" x="100" y="110" class="icon" style="font-size: 40px" fill="#3498DB"></text>
<text class="timer" text-anchor="middle" x="175" y="35" style="font-size: 22px; undefined;" fill="#aaa">50%</text>
</svg>
</div>
Das Sichtgerät des svg Elements ist viewBox="0 0 194 300"
und das y
Attribut auf dem Symbol ist y="110"
, ist meine Frage, ist der Y attibute absichtlich 110
??
I.E. wenn ich das Symbol zum Zentrum wollte, würde ich folgendes tun:
(186/2)+ (height of icon/2) // 186 is the height of the viewbox
Bin ich richtig in der Annahme, dass der Wert von 110 ist in Bezug auf die Höhe der Sichtgerät hinzugefügt?
so ist der Hauptgrund für die Wahl von 110, weil die Größe des Kreises 100 ist? und natürlich die anderen Gründe, die du erwähnt hast! –
Nichts mit der Größe des Kreises zu tun. Es spielt keine Rolle, wie groß der Kreis ist. Hier hat der Kreis einen Durchmesser von 114 (Radius = 57). Aber es könnte 200 sein und die y-Koordinate würde sich nicht ändern. Der Mittelpunkt des Kreises ist bei y = 100. Die Schriftgröße ist 22. Also wäre die Grundlinie (y-Koordinate) von Text bei ungefähr 100+ (22/2) = 111. Dann vielleicht (wie in diesem Fall) ein wenig aufgrund der Form der Schriftart angepasst. –