Tôi đã chọn sử dụng thư viện javascript Raphaël để hỗ trợ trình duyệt mở rộng, nhưng tôi gặp sự cố khi tải SVG để hiển thị chính xác trong mọi trình duyệt, ngoại trừ Chrome và Firefox. Tôi đã gãi đầu của tôi về điều này trong một thời bây giờ và rất thích nghe làm thế nào tôi có thể làm cho SVG làm việc trong một bố trí đáp ứng.SVG trình duyệt chéo trong bố cục đáp ứng hoặc linh hoạt?
Chrome và Firefox hiển thị SVG chính xác như tôi muốn. Nó cân bằng tỉ lệ, duy trì tỷ lệ khung hình chính xác và tỷ lệ phần trăm của bố mẹ được cho chiều rộng.
Internet Explorer duy trì tỷ lệ khung hình chính xác nhưng không đúng tỷ lệ với cha mẹ.
Safari chia tỷ lệ chính xác với chiều rộng của bố mẹ, nhưng không cao. Chiều cao, liên quan đến vùng chứa mẹ, bằng cách nào đó được đặt thành 100%.
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>
Sống Ví dụ có thể được xem tại
Cảm ơn bạn đã trả lời, nhưng tiếc là nó vẫn không hoạt động. :(Tôi đã thiết lập maintainAspectRatio với giá trị đó bằng cách sử dụng 'paper.setViewBox' của Raphaël và tôi vừa thử nó bằng cách sử dụng' paper.canvas.setAttribute ('preserveAspectRatio', 'xMidYMid meet'); 'Như đã đề cập trước đó, tất cả đều hoạt động tốt trong Chrome và Firefox, nhưng vì lý do nào đó, Safari mở rộng chiều cao vùng chứa lên 100% và Internet Explorer (10) không mở rộng chính xác liên quan đến vùng chứa chính. – Jason