Mục tiêu là để phần tử <svg>
mở rộng đến kích thước của vùng chứa chính, trong trường hợp này là <div>
, bất kể thùng chứa lớn hay nhỏ có thể như thế nào.Cách tạo phần tử <svg> mở rộng hoặc hợp đồng với vùng chứa chính?
Mã:
<style>
svg, #container{
height: 100%;
width: 100%;
}
</style>
<div id="container">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" >
<rect x="0" y="0" width="100" height="100" />
</svg>
</div>
Các giải pháp phổ biến nhất cho vấn đề này dường như được thiết lập viewBox
thuộc tính trên các yếu tố <svg>
.
viewBox="0 0 widthOfContainer heightOfContainer"
Tuy nhiên, điều này dường như không làm việc trong trường hợp các yếu tố bên trong phần tử <svg>
có độ rộng được xác định trước và/hoặc chiều cao. Ví dụ: phần tử <rect>
, trong mã ở trên, có chiều rộng và chiều cao được đặt rõ ràng.
Vì vậy, giải pháp hiển nhiên là sử dụng độ rộng% và% chiều cao trên các yếu tố đó. Nhưng điều này thậm chí phải được thực hiện? Đặc biệt, kể từ khi <img src=test.svg >
hoạt động tốt và mở rộng/hợp đồng mà không có bất kỳ vấn đề nào với độ cao và chiều rộng được đặt rõ ràng <rect>
chiều cao và chiều rộng.
Nếu các thành phần như <rect>
và các yếu tố khác như vậy, phải có chiều rộng và chiều cao được xác định theo tỷ lệ phần trăm, có cách nào đó trong Inkscape hay không để tất cả các phần tử có chiều rộng phần trăm sử dụng tài liệu <svg>
. .. thay vì kích thước cố định?
Lưu svg dưới dạng tệp, so với hình ảnh như
và theo cách đó bạn có thể sử dụng chiều rộng: 100% hoặc chiều cao: 100% –
Burimi
Có thể trùng lặp [Làm cách nào để tạo quy mô svg với vùng chứa chính ?] (http://stackoverflow.com/questions/19484707/how-can-i-make-an-svg-scale-with-its-parent-container) – Charles