你能简单地使用SVG<title>
元素和它传达的默认浏览器渲染吗?(注意:这与html中可以在div / img / spans上使用的属性不同,它需要是一个名为title
title
)
rect {
width: 100%;
height: 100%;
fill: #69c;
stroke: #069;
stroke-width: 5px;
opacity: 0.5
}
<p>Mouseover the rect to see the tooltip on supporting browsers.</p>
<svg xmlns="http://www.w3.org/2000/svg">
<rect>
<title>Hello, World!</title>
</rect>
</svg>
或者,如果您真的想在SVG中显示HTML,则可以直接嵌入HTML:
rect {
width: 100%;
height: 100%;
fill: #69c;
stroke: #069;
stroke-width: 5px;
opacity: 0.5
}
foreignObject {
width: 100%;
}
svg div {
text-align: center;
line-height: 150px;
}
<svg xmlns="http://www.w3.org/2000/svg">
<rect/>
<foreignObject>
<body xmlns="http://www.w3.org/1999/xhtml">
<div>
Hello, <b>World</b>!
</div>
</body>
</foreignObject>
</svg>
...但是你需要JS来打开和关闭显示器。如上所示,使标签显示在正确位置的一种方法是将矩形和 HTML 包装在相同的位置,将它们放在一起。<g>
要使用JS查找SVG元素在屏幕上的位置,您可以使用,例如 http://phrogz.net/svg/html_location_in_svg_in_html.xhtmlgetBoundingClientRect()