Ответ 1
Первый и, вероятно, лучший метод, который вы можете использовать, - это использовать атрибут viewBox
. Это приведет к тому, что содержимое svg-тега автоматически примет заданную ширину и высоту самого svg-тега, только показывая, что в пределах определенных границ. Например:
<svg width="82" height="82" viewbox="0 0 102 102">
<rect x="1" y="1" width="100" height="100" stroke="black" stroke-width="2" fill="white"/>
<text fill="black" x="10" y="30">FooBarBaz</text>
</svg>
В качестве альтернативы вы можете применить svg transform
к содержимому тега SVG, который будет выглядеть следующим образом:
<svg width="82" height="82">
<g transform="scale(0.8)">
<rect x="1" y="1" width="100" height="100" stroke="black" stroke-width="2" fill="white"/>
<text fill="black" x="10" y="30">FooBarBaz</text>
</g>
</svg>
Наконец, вы можете попробовать использовать CSS3 transform
для масштабирования всего элемента svg. Это наименее поддерживаемый метод, но я упоминаю его в любом случае, потому что вы изначально попросили решение для CSS. Я настоятельно рекомендую использовать одно из вышеупомянутых решений, хотя это возможно вообще.
<svg width="102" height="102" style="transform:scale(0.8); -webkit-transform:scale(0.8); -moz-transform:scale(0.8); -ms-transform:scale(0.8); -o-transform:scale(0.8);">
<rect x="1" y="1" width="100" height="100" stroke="black" stroke-width="2" fill="white"/>
<text fill="black" x="10" y="30">FooBarBaz</text>
</svg>