Ich bin ein neues Widget mit SVG darin hinzufügen.Kind ist die gleiche Größe wie Eltern, aber Scroll erscheint
Ich mache es gleiche Größe wie Eltern, aber es führt zu unerwünschten Scroll zu erscheinen.
Fiddle: https://jsfiddle.net/Murval/j1oe6x4b/
.widget-outer {
display: flex;
height: 210px;
width: 400px;
border: 1px solid black;
}
.widget {
overflow-y: auto;
flex: 1;
}
.svg-container {
text-align: center;
display: inline-block;
width: 100%;
height: 100%;
}
.svg {
max-width: 100%;
max-height: 100%;
}
<div class="widget-outer">
<div class="widget">
<div class="svg-container">
<svg class="svg" viewBox="0 0 100 100">
<circle cx="50" cy="50" r="50" style="fill: gray;"></circle>
</svg>
</div>
</div>
</div>
Wie ich sehe, erscheint die rolle, weil es extra Raum unter svg-Behälter div. Die Änderung der Anzeige, wie in anderen Posts vorgeschlagen, hat jedoch keine Wirkung.
Zusätzliche Überlegungen:
- Ich will nicht Stile für widget-Außen und Widget Klassen ändern, da sie für andere Widgets fein arbeiten. Überlauf-y: Auto auf Widget Klasse ist erforderlich, weil einige andere Widgets längeren Inhalt haben, der scrollbar sein sollte.
- Ich möchte svg Element in Widget für jede Kombination von Höhe und Breite auf Widget-Container den gesamten verfügbaren Platz zu nehmen.
- Absteigend max-height von svg Element hilft, aber kann nicht als richtige Lösung für dieses Problem gezählt werden.
tl; dr Ist es möglich, svg in Widget ohne Scrollbar passen?
beide '.svg-container' ändern und' .svg' zu 'Anzeige: block' entfernt die Scrollbar. – Turnip
Da Sie Svg 'Inline-Block' gemacht haben, wird ein Leerzeichen nach dem Befehl eingefügt, sofern Sie nicht den gesamten Abstand zwischen dem Ende des Svg-Containers und dem Anfang des nächsten Div-End-Tags auskommentieren Raum – Pete