我正在尝试访问我的span元素字体大小。
我在div中有一堆span元素。我使用样式表根据屏幕大小更改字体大小。我想将它添加到画布,但它需要具有相同的字体/字体大小。让我们在我的CSS中说span{font-size:12px}
let spanEl = document.getElementsByTagName("span")
let canvas = document.querySelector("#canvas")
let ctx = canvas.getContext("2d")
ctx.font = spanEl.fontSize+" "+"Open Sans";
当我console.log(ctx.font)
时,它会返回10px san-serif
,我猜这是画布的默认字体。我做错了什么?
答案 0 :(得分:1)
document.getElementsByTagName
返回元素列表,而不是一个元素。因此,您无法访问该列表的字体大小。fontSize
不是元素的参数,而是style
参数的属性。fontSize
可能在css
中设置,而不是在您刚刚访问的特定style
元素的span
属性中设置。您可以做的是:
let spanEl = document.getElementsByTagName("span");
ctx.font = window.getComputedStyle(spanEl[0]).fontSize + " Open Sans";
检查以下示例:
let spanEl = document.getElementsByTagName("span");
console.log(window.getComputedStyle(spanEl[0]).fontSize);

span {
font-size: 13px;
}

<span>test</span><br />
<span>test</span><br />
<span>test</span><br />
&#13;
答案 1 :(得分:1)
您可以按顺序使用window.getComputedStyle
来计算范围的fontSize。
let spanEl = document.getElementsByTagName("span");
console.log(window.getComputedStyle(spanEl[0]).fontSize)
&#13;
span {
font-size: 18px;
}
&#13;
<span>Text here</span>
&#13;