Can';t通过JavaScript设置SVG文本的颜色
我使用javascript创建svg文本,然后设置属性,但有些属性无法正常工作:Can';t通过JavaScript设置SVG文本的颜色,javascript,svg,Javascript,Svg,我使用javascript创建svg文本,然后设置属性,但有些属性无法正常工作: let svgns = "http://www.w3.org/2000/svg"; let container = document.getElementById("mySVG"); var text = document.createElementNS(svgns, "text"); text.setAtt
let svgns = "http://www.w3.org/2000/svg";
let container = document.getElementById("mySVG");
var text = document.createElementNS(svgns, "text");
text.setAttributeNS(null, "x", 30);
text.setAttributeNS(null, "y", 20);
text.textContent = "Hello!";
text.style.fontSize = "50";
text.style.fontFamily = "Arial";
text.style.color = "red"; // does'nt display
text.style.textIdent = "500px"; // does'nt store in the attributes
text.style.textShadow = "5px 5px 10px pink";
text.style.textOrientation = "upright";
text.style.textOverflow = "ellipsis";
text.style.textRendering = "auto";
text.style.writingMode = "vertical-rl";
container.appendChild(text);
然后,我用
for (let prop in text.style) {
let val = text.style[prop];
console.log(`${prop} = ${val}`);
}
结果是:
因此,在末尾,“红色”存储在“颜色”属性中,但它不显示(浏览器中的文本仍然为黑色-Chrome,版本90.0.4430.93(Build Officel)(x86_64)),
而且文本缩进也没有值(其他属性表现良好)
有什么线索吗?SVG文本不是HTML文本。它有一组不同的CSS属性-其中一些与HTML文本重叠,但不是全部-例如,SVG文本没有边框属性。并且没有“颜色”属性(您想要“填充”) 请阅读有关文本元素的文档:
SVG文本不是HTML文本。它有一组不同的CSS属性-其中一些与HTML文本重叠,但不是全部-例如,SVG文本没有边框属性。并且没有“颜色”属性(您想要“填充”) 请阅读有关文本元素的文档:
我对
text.style.border=“solid”也有同样的问题代码>它位于属性中,但不显示。我与text.style.border=“solid”有相同的问题代码>它在属性中,但没有显示我不完全明白的是,如果我使用console.log(文本),我会说“Hello!”,如果我在HTML中复制/粘贴它,它会显示边框和正确的颜色…如果你复制并粘贴到HTML中,文本元素被视为未知的HTML元素:我不完全明白的是,如果我使用console.log(文本),我会说“Hello!”,如果我在HTML中复制/粘贴它,它会显示边框和正确的颜色……如果复制并粘贴到HTML中,文本元素将被视为未知的HTML元素: