【发布时间】:2016-10-08 16:29:29
【问题描述】:
众所周知,带有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-element 并运行
$0.outerHTML = $0.outerHTML
元素将获得其预期的表现形式。
【问题讨论】: