Objekt in "defs" wird angezeigt

Django, Flask, Bottle, WSGI, CGI…
Antworten
Pitwheazle
User
Beiträge: 869
Registriert: Sonntag 19. September 2021, 09:40

Ich versuche meine Grafiken ordentlich an verschiedene Screengrößen anzupassen und mich dabei in CSS und svg zu verbessern.
Wenn ich im Code:

Code: Alles auswählen

<svg xmlns="http://www.w3.org/2000/svg"
    version=1.1"
    <svg viewbox="-30 0 {{grafik.h_breite}} {{grafik.h_hoehe}}">

    <defs>
        <g id="wuerfelchen" style="stroke: black; stroke-width: 1; fill-opacity: 0.7;">
            <polygon points="0,26 20,26, 20,6, 0,6" style="fill: yellow;"/>
            <polygon points="0,6 20,6 26,0 6,0" style="fill: blue;"/>
            <polygon points="20,26 26,20 26,0 20,6" style="fill: red;"/>
        </g>
    </defs>

    {% if grafik.object == "raum" %}
        {% for x, y in grafik.schieb %}
            <use href="#wuerfelchen" transform="translate({{x}},{{y}})"/>
        {% endfor %}
    {% endif %}    
</svg>
... die Zeile mit der viewbox weglasse, wird das Würfelchen aus den "defs" angezeigt. Das sollte doch nicht sein - oder habe ich da was falsch verstanden?
Auch wenn ich die unteren Zeilen ("...if grafik.object=="raum"..." weglasse, wird das Würfelchen angezeigt.
Bild
Sirius3
User
Beiträge: 17712
Registriert: Sonntag 21. Oktober 2012, 17:20

Und schon wieder beschreibst Du nur, was Du ungefähr machst und was Du denkst, was dann passiert, statt hier wirklich die verschiedenen svg-Varianten zu posten, woran man direkt sehen könnte, was sich wirklich geändert hat. Wir sollen also mal wieder raten, was Du vielleicht falsch gemacht hast (Du erinnerst Dich an Deine wilden Spekulationen wegen Floatingpoints, wo sich letztlich herausgestellt hat, dass Du keine Dezimalpunkte verwendest).
Vielleicht liegt es an dem kaputten XML das Du hier postest, dass der Browser versucht, irgendwas sinnvolles daraus zu lesen?
Antworten