我試圖用viewBox屬性構造內聯SVG,但沒有顯式寬度或高度屬性。我使用CSS將SVG的寬度設置爲100%。這應該讓SVG縮放到包裝容器,保持由viewBox設置的寬高比。在Chrome和Firefox中,這個功能完美無缺!帶有viewBox和width的SVG在IE中沒有正確縮放高度
這裏就是我談論的最小codepen例如: http://codepen.io/pcorey/pen/amkGl
HTML:
<div>
<svg viewBox="0 0 100 10">
<text x="1" y="9">hello</text>
</svg>
</div>
CSS:
div {
width: 400px;
}
svg {
width: 100%;
max-height: 100%;
outline: 1px solid tomato;
}
text {
font-size: 10px;
}
視框爲100×10。外部div設置爲400px寬度。這意味着SVG的高度應該是(並且在Chrome/Firefox中)40px。但是,IE 11,寬度始終是150像素(甚至當DIV的寬度超過1500px ...)
有一個很好的方式在IE中解決這一問題?爲什麼IE不能正確處理未知高度?我可以使用「intrinsic aspect ratio」技巧,但這非常醜陋,需要另一個DOM元素,並且要求每次包裝器調整大小時重新計算填充頂部。
有關我爲什麼要做到這一點的詳細信息,我寫了一個快速的博客文章吧:http://1pxsolidtomato.com/2014/10/08/quest-for-scalable-svg-text/
感謝您的幫助!
請參閱使用
啊,是的,這將工作。我試過這樣做,但我正在使用計算像素填充。如果我使用百分比,它完美的作品。謝謝! – pcorey 2014-10-09 15:41:12