众所周知,带viewbox
的svg-element应自动缩放到样式的大小。
例如,我们将200 * 200的圆圈放入100 * 100 div
。在此之前,让svg
占用所有div
的空间。 Svg缩放,以便我们可以看到完整的圆圈:
div {
width: 100px;
height: 100px;
outline: 1px dotted red;
}
svg {
width: 100%;
height: 100%;
}
<div>
<svg viewbox="0 0 200 200">
<circle cx="100" cy="100" r="99" />
</svg>
</div>
现在让我们将这个标记放入Angular 2组件:
import {Component, View, CORE_DIRECTIVES} from 'angular2/angular2'
@Component({
selector: 'my-app',
template: `
<div>
<svg viewbox="0 0 200 200">
<circle cx="100" cy="100" r="99" />
</svg>
</div>
`
})
export class App {
constructor() {
}
}
我们会看到相同的样式:
为什么会发生这种情况?如何解决?
我需要svg
自动缩放。
完整示例:http://plnkr.co/edit/jNJNJLo8ygVcp9SIVcDx?p=preview
有趣的是,如果您在devtools中选择此svg
- 元素并运行
$0.outerHTML = $0.outerHTML
该元素将获得其预期的表示。
答案 0 :(得分:4)
SVG区分大小写。正确的属性是viewBox而不是viewbox。