Мета полягає в тому, щоб <svg>
елемент розширився до розміру свого батьківського контейнера, в цьому випадку a <div>
, незалежно від того, наскільки великий він чи малий цей контейнер.
Код:
<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>
Найбільш поширеним рішенням цієї проблеми, здається, є встановлення viewBox
атрибута на <svg>
елементі.
viewBox="0 0 widthOfContainer heightOfContainer"
Однак, здається, це не працює в тих випадках, коли елементи всередині <svg>
елемента мають заздалегідь задані ширини та / або висоти. Наприклад, <rect>
елемент у наведеному вище коді має чітко встановлені ширину та висоту.
Тож очевидним рішенням є використання% ширини та% висоти також для цих елементів. Але чи потрібно це навіть робити? Тим більше, оскільки він <img src=test.svg >
працює чудово і розширює / стискає без проблем із явно заданими <rect>
висотами та шириною.
Якщо такі елементи, як <rect>
і інші подібні до нього елементи, повинні мати їх ширину та висоту, визначені у відсотках, чи існує спосіб встановити Inkscape таким чином, щоб усі елементи з <svg>
документом використовували відсоткові ширини, висоти тощо .. замість фіксованих розмірів ?