Ich habe mich für die umfassende Browser-Unterstützung für die Javascript-Bibliothek von Raphaël entschieden, aber ich habe Probleme, die SVG in jedem Browser mit Ausnahme von Chrome und Firefox ordnungsgemäß anzuzeigen. Ich kratze mich seit einiger Zeit über diesen Kopf und würde gerne hören, wie ich SVG in einem ansprechenden Layout arbeiten lassen könnte.Cross-Browser-SVG in responsiven oder flüssigen Layout?
Chrome und Firefox Anzeige der SVG genau so, wie Ich mag würde. Es skaliert gleichmäßig, behält ein korrektes Seitenverhältnis und die prozentuale Breite des Elternteils bei.
Internet Explorer behält ein korrektes Seitenverhältnis bei, skaliert jedoch nicht ordnungsgemäß mit dem übergeordneten Element.
Safari skaliert ordnungsgemäß mit seiner übergeordneten Breite, aber nicht in der Höhe. Die Höhe, bezogen auf den übergeordneten Container, ist auf 100% gesetzt.
Javascript
var menu = Raphael('menu', '100%', '100%');
menu.setViewBox('0', '0', '50', '50', true);
var menu_bg = menu.rect(0,0, 50, 50);
menu_bg.attr({
id : 'menu_bg',
'stroke-width' : '0',
'fill' : '#000'
});
CSS
* {
margin: 0;
padding: 0;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
html, body {
height: 100%;
}
#menu {
width: 50%;
background: #60F;
padding: 2.5%;
}
#menu svg {
display: block;
width: 100%;
height: 100%;
max-height: 100%;
}
#text {
width: 50%;
background: #309;
padding: 2.5%;
color: #FFF;
}
HTML
<div id="menu"></div>
<div id="text">
Filler text
</div>
Live- Beispiel kann bei
Vielen Dank für Ihre Antwort, aber leider funktioniert es immer noch nicht. :(Ich habe preserveAspectRatio auf diesen Wert gesetzt, indem ich Raphaëls 'paper.setViewBox' verwendet habe und ich habe es gerade mit' paper.canvas 'versucht.setAttribute ('preserveAspectRatio', 'xMidYMid meet'); 'Wie bereits erwähnt, funktioniert alles in Chrome und Firefox, aber aus irgendeinem Grund erweitert Safari die Containerhöhe auf 100% und Internet Explorer (10) skaliert nicht korrekt in Bezug auf den übergeordneten Container. – Jason