SVG中foreignObject高度动态调整以适应内部HTML内容
在SVG图形中嵌入HTML内容,可以使用foreignObject元素。然而,foreignObject需要预设高度和宽度才能正确渲染内部HTML。如果HTML内容高度不确定(例如,动态文本或段落数量变化),则需要动态调整foreignObject的高度。
直接设置height: auto无效,需要借助JavaScript。 解决方案是获取内部HTML内容的高度,然后用JavaScript动态设置foreignObject的高度。
以下代码演示如何实现:
立即学习“前端免费学习笔记(深入)”;
<svg height="500" width="500" xmlns="http://www.w3.org/2000/svg"> <foreignobject height="100" id="foreign-object" width="100%"> <div id="inner-html" xmlns="http://www.w3.org/1999/xhtml"> <div id="content" style="border: 1px solid black; padding: 10px;"> <p>这是一个段落,高度不固定。</p> <p>另一个段落,会影响整体高度。</p> </div> </div> </foreignobject> </svg> <script> window.addEventListener("load", () => { const content = document.getElementById("content"); const foreignObject = document.getElementById("foreign-object"); const contentHeight = content.offsetHeight; foreignObject.setAttribute("height", contentHeight); }); </script>
代码首先获取包含实际内容的div元素(content)的高度(offsetHeight)。然后,使用setAttribute方法将此高度值赋予foreignObject元素。window.addEventListener("load", ...)确保在页面完全加载后执行代码,保证正确获取content元素的高度。 这样,foreignObject的高度就能动态适应内部HTML内容的高度变化。
以上就是SVG foreignObject高度如何根据内部HTML内容动态调整?的详细内容,更多请关注php中文网其它相关文章!
HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号