html - 使 SVG 等宽里面的元素
问题描述
在这个小提琴中 - https://jsfiddle.net/xtxd6r8t/ - 我有一个元素在标签<svg>
中包含一些文本。<text>
当我检查<svg>
并向下钻取<text>
元素时,我可以看到它的宽度等于副本的总长度。但是,该<svg>
元素更高更宽。有没有办法让<svg>
元素从子元素中取出它的宽度和高度<text>
?
<svg xmlns="http://www.w3.org/2000/svg">
<text x="10" y="20" stroke="none" fill="red">
SVG Colored Text
</text>
</svg>
解决方案
此代码将帮助您
var svg = document.getElementsByTagName("svg")[0];
var bbox = svg.getBBox();
var viewBox = [bbox.x, bbox.y, bbox.width, bbox.height].join(" ");
svg.setAttribute("viewBox", viewBox);
svg.setAttribute("width", bbox.x + bbox.width + "px");
svg.setAttribute("height",bbox.y + bbox.height + "px");
svg {
background: green;
}
<svg xmlns="http://www.w3.org/2000/svg" class="image">
<text x="10" y="20" stroke="none" fill="red">
SVG Colored Text SVG Colored Text
</text>
</svg>
推荐阅读
- google-api - Google Ads 的“操作”和“请求”有什么区别?
- oracle - oracle数据库中密码不能包含用户名或用户全名的一部分(pl/sq)
- apache-kafka - 如何修复 kafka.common.errors.TimeoutException: Expiring 1 record(s) xxx ms has been given since batch creation plus linger time
- android - 无法在 web 视图中录制语音
- python-3.x - 模板文件夹中的烧瓶 url_for 'static'?
- c++ - 如何修复元素
在 C++ 中有无效值“/Yu”错误? - mongodb - Kafka 连接器未读取 mongodb 集合
- java - 如何修复就餐 simphony 错误:saf.v3d.scene.VComposite.addChild(VComposite.java:46)
- javascript - 如何从 JavaScript 中的内存地址获取实例?
- angular - 当我选择带有动态 url 的离子标签时,该标签不会突出显示