构造的SVG不适用于绘制HTML的地方
Constructed SVG does not work where HTML-drawn does
当我在HTML源代码中使用viewBox属性绘制SVG时,我可以重新调整窗口大小,并且我的SVG会自动缩放。
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-350 -250 700 500">
<circle r="200" class="face" fill="green"/>
<path fill="none" class="face"
transform="translate(-396,-230)"
d="M487.41, 282.411c-15.07, 36.137-50.735, 61.537-92.333,
61.537 c-41.421, 0-76.961-25.185-92.142-61.076"/>
<circle cx="-60" cy="-50" r="20" fill="black"/>
<circle cx="60" cy="-50" r="20" fill="black"/>
</svg>
但是,当我用D3.js构建完全相同的SVG时,viewBox就不起作用了!
var smileyRed = d3.select("#js")
.append("svg")
.attr("xmlns", "http://www.w3.org/2000/svg")
.attr("viewbox", "-350 -250 700 500");
smileyRed.append("circle")
.attr('r','200')
.attr('class','face')
.attr('fill','red');
smileyRed.append("path")
.attr('fill','none')
.attr('class','face')
.attr('transform','translate(-396,-230)')
.attr('d','M487.41, 282.411c-15.07, 36.137-50.735, 61.537-92.333,
61.537 c-41.421, 0-76.961-25.185-92.142-61.076');
smileyRed.append("circle")
.attr('cx','-60')
.attr('cy','-50')
.attr('r','20')
.attr('fill','black');
smileyRed.append("circle")
.attr('cx','60')
.attr('cy','-50')
.attr('r','20')
.attr('fill','black');
JSfiddle演示
viewBox
是区分大小写的属性
用viewBox
代替viewbox
.attr("viewBox", "-350 -250 700 500");
从这里:http://www.w3.org/TR/SVG/styling.html#CaseSensitivity
通过表示属性进行的属性声明用区分大小写的XML[XML10]表示。
相关文章:
- 如何在javascript中在图像上绘制图像(没有CSS和HTML)
- Html画布绘制速度因画布元素过多而减慢
- 使用缩放脚本化事件绘制 HTML 图表
- 尝试将无符号长整型的 ARGB 数据绘制到 HTML 画布
- 未捕获的类型错误:对象#<HTML对象元素>没有方法'重新绘制工作流'
- html画布绘制图像不起作用
- 在html画布中绘制更平滑的路径
- 如何将Jqplot绘制到HTML画布中
- HTML画布图像-在页面中绘制多画布图像
- 从 html 输入值绘制圆圈
- HTML 5 画布似乎重新绘制了已删除的部分
- 使用 HTML 和 JavaScript 绘制表格
- 绘制大量线条时的 HTML 画布性能
- 在HTML 5 / Javascript Teechart上绘制矩形
- JavaScript - 在高负载脚本执行之前绘制 html-mask
- 使用Php和Html绘制图表,使用Canvas.js使用mysql数据库
- 使用Javascript, WebGL和HTML绘制正方形
- 使用HTML 5绘制画布
- HTML绘制流程图
- 将 HTML 绘制到画布