【发布时间】:2017-03-02 22:24:55
【问题描述】:
我有一些代码旨在调整 SVG 上的文本大小,使其适合特定大小。
它在 chrome 上似乎可以正常工作,但在任何其他浏览器中都不能正常工作(我尝试过 IE11 和 Safari)。
这是代码
<html>
<body>
<style>
@import url('https://fonts.googleapis.com/css?family=Sonsie+One');
text {
font-family: "Sonsie One";
}
svg {
background: #43C6AC;
}
</style>
<svg version="1.2" viewBox="0 0 600 400" width="600" height="400" xmlns="http://www.w3.org/2000/svg">
<text id="t1" style="fill: white;" x="50%" y="50%" text-anchor="middle">Test</text>
</svg>
<script>
function resize() {
var width = 350,
height = 80;
var textNode = document.getElementById("t1");
for (var k = 1; k < 60; k++) {
textNode.setAttribute("font-size", k)
var bb = textNode.getBBox()
if (bb.width > width || bb.height > height)
break;
}
}
window.onload = resize;
</script>
</body>
</html>
这是在一个 url 上运行的:http://hiven.com/momo.html
谁能告诉我哪里出错了?在 chrome 中,它会将文本调整为 350px,但在其他情况下则不会。
【问题讨论】:
-
在 Chrome、Firefox、Opera 中运行正常。当字体为 Sonsie One 时,IE 不起作用,但在其他情况下可以正常工作。 (无法在 Safari 中测试)
标签: javascript svg cross-browser webfonts